统计信息不及时会造成SQL执行计划的跑偏,因此有必要对大表的统计信息进行巡检。
关于统计信息的收集,可以看八怪老师的这篇 MySQL:优化器统计数据可能过旧
下面是一个简单地sql检查脚本,可以包装下加入到数据库巡检平台里面。
SELECT
database_name,
table_name,
last_update,
n_rows
FROM
mysql.innodb_table_stats
WHERE
1 = 1
AND n_rows > 50 * 10000 -- 优先关注行数超过50w的表
AND last_update < date_add( CURRENT_DATE (), INTERVAL '-14' DAY )
ORDER BY
n_rows DESC
LIMIT 100;
对于上面巡检的库表清单,可以在低峰期执行 analyze table xx 重新采集统计信息。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。