PHP查询消耗资源最高的SQL语句
刚子 发布于 阅读:13
慢日志可以记录执行时间大于指定数值的SQL,但是有些时候并非单条SQL长时间执行造成的,也有可能是一条执行速度比较快,但是执行及其频繁造成的,这种情况下慢日志完全失效。可以使用Performance Schema来查看。
语句如下:
-- 查看最近执行时间最长、或等待事件最多的语句
SELECT
DIGEST_TEXT AS query_template, -- 参数化后的SQL模板
COUNT_STAR AS exec_count, -- 执行次数
SUM_TIMER_WAIT / 1000000000000 AS total_latency_sec, -- 总耗时(秒)
AVG_TIMER_WAIT / 1000000000000 AS avg_latency_sec, -- 平均耗时
SCHEMA_NAME,
LAST_SEEN -- 最后一次执行时间
FROM performance_schema.events_statements_summary_by_digest
ORDER BY SUM_TIMER_WAIT DESC
LIMIT 10;
Performance Schema是记录在内存中的,清空Performance Schema数据重新开始统计的命令如下:
-- 清空所有 SQL 语句性能统计(CPU、耗时、次数全部清零)
TRUNCATE TABLE performance_schema.events_statements_summary_by_digest;