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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了减少Google Cloud SQL中的内存使用量相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

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

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

附注:

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

以上是关于减少Google Cloud SQL中的内存使用量的主要内容,如果未能解决你的问题,请参考以下文章

从 Google Cloud Run 服务中的 docker 容器到 Google Cloud SQL 的请求最多需要 2 分钟

Google App Engine 中的 Datastore 与 Cloud SQL

MYSQL 语句中的动态表名 (Google Cloud SQL)

更改Google Cloud SQL中的存储类型

删除 Google Cloud Datalab SQL 模块参数中的引号?

如何终止 Google Cloud SQL for PostgreSQL 中的会话?