29

我有一个 D0 大小的 Cloud SQL 实例。当我运行一个简单的

select * from table

它有大约 500 行,执行平均需要 100 毫秒(如 SQL 提示所报告的那样)。而在我的本地 MySQL 5.5 实例上,它只需要 1 毫秒。我的开发机器有 2.9GHz 双核 Intel Core i7 和 8GB 1600MHz 内存。我在常见问题解答中读到 db 的性能取决于大小 - 较大的实例具有更多的 RAM 和 CPU。

期望通过更大的实例大小解决性能问题是否合理?还是我在这里错过了其他东西?

4

5 回答 5

12

这是我们在 2019 年 1 月的更新。

在 4vcpu + 15GB RAM 实例中使用具有 46GB 数据库的 Google Cloud SQL SECOND GENERATION,我们发现即使与运行默认 mysql 安装且仅分配 125MB 内存的 dev macbook pro 相比,它也可能非常慢:

Mysql:配备 10GB RAM 的 Google Cloud SQL 比配备 125MB ram 的 Macbook Pro 慢 20 倍

于 2019-02-03T13:51:58.897 回答
6

编辑:2016 年 4 月 10 日

GAE 现在提供第二代云 mysql,即使是像“db-g1-small”这样的基本层,其性能也与旧 Cloud SQL 产品中的 D8 层一样快。它也便宜得多。这似乎是一个重要的里程碑,没有理由再诉诸黑客和变通方法了。

您可以参考 Cloud SQL 定价,但最低费用约为每月 20 美元。

原帖

Google 只是在 D0 层的慢速机器上配置 VM。您可以选择 D4,但 RAM 与处理器相比并不是主要问题(他们没有提到 GHz)。

网络延迟不是问题。例如,下面的 0.05s 仅是服务器上的查询执行时间。此后的任何时间都可以用于数据传输。

mysql> select * from tracking limit 5;
+--------------------------------+-----------+-----------+
| id                             | scan_date | status    |
+--------------------------------+-----------+-----------+
| 420006929400111899561510697350 | NULL      | Delivered |
| 420010859400111899561989496058 | NULL      | Delivered |
| 420019849400111899561989496331 | NULL      | Delivered |
| 420100109400111899561903290311 | NULL      | Delivered |
| 420100319400111899561944407020 | NULL      | Delivered |
+--------------------------------+-----------+-----------+
5 rows in set (0.05 sec)

编辑:2016 年 3 月

对于几个应用程序,我不再使用 Cloud SQL,而是使用远程托管的基本 MySql 集群,因为 GAE 打开了出站套接字连接。听起来很疯狂?不是根据数字 - 通过此套接字连接发送查询和取回数据比位于同一位置的 D3 更快。

于 2014-08-15T20:02:42.310 回答
6

视图是性能不佳的原因。谷歌运行他们自己风格的 MySQL 引擎,该引擎以一种可能会损害视图的方式进行了优化。如果您有许多联接或/和联合预计视图运行缓慢。

但是,自从我发布这个问题以来已经快一年了,事情可能已经改变了。自从我们不再使用它们以来,我没有重新访问过视图。

于 2014-08-16T11:45:39.287 回答
3
  1. 您从哪里连接到 Cloud SQL 实例?
  2. 层大小将对性能产生很大影响。您可以临时更改实例的层以对其进行测试。
于 2013-09-04T17:06:25.240 回答
3

我们也有同样的问题。使用 D16 实例,加载一个简单的网站论坛页面需要 10 秒以上。我刚刚与一位 GoogleCloud 技术支持工程师交谈,他确认 CloudSQL 还没有真正为“性能”做好准备(截至 2015 年夏季),他建议重写所有内容以使用 DataStore ...

因此,如果您的页面会执行数十个小型 SQL 查询,并且数据集太大而无法完全放入缓存中,那么 CloudSQL 现在不是一个可行的解决方案。

于 2015-07-15T15:34:28.653 回答