减少Google Cloud SQL中的内存使用量

问题描述 投票:2回答:1

我们有一个简单的MySQL数据库,有几个表,由Google Cloud SQL管理。该数据库有几亿行,读取/写入相当轻松。我们远远没有达到存储的极限,但内存使用量随着存储量的增长呈线性增长,并且很快就会成为可扩展性问题。

内存使用量是否应随存储量线性增加?我们应该考虑降低内存使用量?我们没有自定义任何数据库标志。

我没有看到有关Google云端文档中的内存使用情况和最佳做法的任何信息。对于我们来说,考虑水平缩放/分片似乎为时尚早。

mysql google-cloud-platform google-cloud-sql
1个回答
3
投票

MySQL将自动分配大约0.8个实例的内存来存储数据和索引。这是为了避免繁重的I / O操作并提供良好的响应时间。

因此,默认情况下,MySQL希望尽可能多地存储在内存中 - 导致内存使用看起来像插入更多数据时线性扩展。

这并不一定意味着您接近面临的问题。这真的是你的MySQL机器有什么资源的问题。给它128GB的RAM并插入大约120GB的数据,它将在内存中保存~102GB的数据(保持性能),而具有120GB值数据的64GB RAM机器肯定会显示较慢的响应时间。

附注:

如果您存储了数亿行并且愿意在查询时间(毫秒到秒)中稍微妥协一下,我建议您查看BigQuery,最终支付的费用可能比Cloud SQL少,不用担心规模(永远......)也不会DBA / Dev Ops维护(内存,CPU,索引等)。

© www.soinside.com 2019 - 2024. All rights reserved.