减少Google Cloud SQL中的内存使用



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

内存使用量是否应该随着存储量线性增长?我们应该考虑什么来降低内存使用率?我们尚未自定义任何数据库标志。

我在谷歌云文档中没有看到任何关于内存使用和最佳实践的信息。现在考虑水平缩放/分片似乎还为时过早。

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

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

这并不一定意味着你即将面临问题。这实际上是MySQL机器拥有什么资源的问题。给它128GB的RAM,并插入大约120GB的数据,它将在内存中容纳大约102GB的数据(保持性能(,而64GB的RAM机器和120GB数据肯定会显示出较慢的响应时间。

附带说明:

如果你存储了数亿行,并且愿意在查询时间(毫秒到秒(上妥协一点,我建议你查看BigQuery,你最终可能会比Cloud SQL支付更少的费用,而不必担心规模(永远…(或DBA/Dev Ops维护(内存、CPU、索引等(。

相关内容

  • 没有找到相关文章

最新更新