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,所以每个日志都被存储了。
我正在为 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,所以每个日志都被存储了。