slow_log table 在 Google Cloud SQL 中的低性能

Low performance of slow_log table in Google Cloud SQL

我正在为 Google App Engine 上的项目使用 Google 云 SQL 实例。我启用了慢查询日志标志来存储慢查询。但是slow_logtable的性能实在是太差了,光是选一些数据就花了6分钟左右。

我还注意到记录的查询并不是真正的 "slow",我的意思是它们的查询时间和锁定时间为 0。参见示例:

mysql> SELECT * FROM slow_log LIMIT 900000,1; start_time: 2015-05-01 20:06:16 query_time: 00:00:00 lock_time: 00:00:00 rows_sent: 1 rows_examined: 1 sql_text: select * from服务where名称= 'facebook' limit 1 1 row in set (6 min 23.37 sec)

我应该向 table 添加一些索引吗?还是我应该截断它以减少行数?

慢速查询并不是需要很长时间才能执行的查询。这不会用作检测工具,因为您可以通过简单的计时自己检测到它。
它告诉您的是设计不当的查询,在编译时它检测到没有好的索引,并且必须扫描整个 table.
。 这很重要,因为它告诉您即使现在花费零时间,查询也会成为大数据的问题。
Tldr:添加适当的索引。

我发现了问题,标志 long_query_time 被设置为 0,所以每个日志都被存储了。