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

Jus*_*use 4 mysql google-cloud-sql google-cloud-platform

我们有一个简单的MySQL数据库,其中包含一些表,由Google Cloud SQL管理。该数据库有几亿行,并且读/写操作相当轻松。我们还远未达到存储限制,但是内存使用量随存储量呈线性增长,并且很快将成为可扩展性的问题。

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

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

小智 8

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

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

这并不一定意味着您即将面临问题。实际上,这与MySQL机器拥有的资源有关。给它提供128GB的RAM并插入约120GB的数据,它将在内存中保留约102GB的数据(保持性能),而具有120GB的数据的64GB RAM机器肯定会显示较慢的响应时间。

旁注:

如果您存储了数亿行,并且愿意在查询时间(毫秒到秒)之间做出一些折衷,那么我建议您检查一下BigQuery,您可能最终会比Cloud SQL少付钱,而不用担心规模(永远)。 DBA / Dev Ops维护(内存,CPU,索引等)。