mysql - 谷歌云 : MySQL queries very slow

标签 mysql innodb google-cloud-sql

在谷歌云上部署后,我的应用程序有非常大的延迟,超过 5 秒。搜索问题后,发现问题出在对 MySQL 数据库的查询上,并且执行时间非常长。

以下是在不同服务器上比较来自同一数据库的一些示例。这些命令是通过 ssh 直接在 sql server 上发出的:

select * from tbl1;
local - 54343 rows in set (0.14 sec)
shared hosting - 54343 rows in set (0.89 sec)
google - 54343 rows in set (26.73 sec)

select * from tbl2;
local - 132 rows in set (0.00 sec)
shared hosting - 132 rows in set (0.01 sec)
google - 132 rows in set (0.20 sec)

select * from tbl3 inner join tbl4 ON tbl4.tbl3_id = tbl3.id;
local - 746 rows in set (0.00 sec)
shared hosting - 746 rows in set (0.12 sec)
google - 746 rows in set (0.95 sec)

我使用的是 D1,但也尝试过 D32 层,但没有得到更好的结果。我正在使用默认设置(标志等)。您认为这会导致什么问题?我也尝试过异步文件系统 repc.,关闭一些日志记录标志。

最佳答案

鉴于您的本地查询时间非常短,即使对于非常多的行,我怀疑查询缓存可能在这里发挥作用。

像这样使用 SQL_NO_CACHE 在本地和远程尝试查询:

select sql_no_cache * from tbl3 inner join tbl4 ON tbl4.tbl3_id = tbl3.id;

如果这样可以平衡时间,则可能是 Google 服务器上未配置查询缓存。启用它现在可能会给您一个良好的开端,但是,如果您的查询经常花费几秒钟的时间,您可能需要考虑优化它们。

8.8.1 Optimizing Queries with EXPLAIN

关于mysql - 谷歌云 : MySQL queries very slow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29871718/

相关文章:

google-cloud-platform - Serverless VPC Access 连接器是单点故障吗?

google-cloud-sql - Google Cloud SQL 存储大小没有变化

mysql - 为什么 ibdata1 文件占用的空间比 .frm + .MYD + .MYI 文件少?

mysql - InnoDB 源中的 UNIV_HOTBACKUP 是什么意思?

mysql - sql 中的多个总计

MYSQL:来自参数的条件 GROUP BY?

MySQL 在服务重启时为表重置 AUTO_INCREMENT

mysql - 将 MySQL Workbench 连接到 Google Cloud SQL 时出现问题

java - 通过java更新mysql数据库

mysql - 偶尔出现的新列 : new columns or separate table or json column