利用mysql的表events_statements_summary_by_digest,怎么分析出高频的SQL
时间: 2023-12-16 21:04:50 浏览: 167
要利用 MySQL 的表 events_statements_summary_by_digest 分析出高频的 SQL,可以按照以下步骤进行:
1. 查看最高执行次数的 SQL:使用以下 SQL 查询 events_statements_summary_by_digest 表,按照执行次数降序排序,可以得到执行次数最多的 SQL。
```
SELECT DIGEST_TEXT, COUNT_STAR
FROM performance_schema.events_statements_summary_by_digest
ORDER BY COUNT_STAR DESC
LIMIT 10;
```
2. 查看最慢的 SQL:使用以下 SQL 查询 events_statements_summary_by_digest 表,按照平均执行时间降序排序,可以得到执行时间最长的 SQL。
```
SELECT DIGEST_TEXT, AVG_TIMER_WAIT
FROM performance_schema.events_statements_summary_by_digest
ORDER BY AVG_TIMER_WAIT DESC
LIMIT 10;
```
3. 查看最耗时的 SQL:使用以下 SQL 查询 events_statements_summary_by_digest 表,按照总执行时间降序排序,可以得到执行时间最长的 SQL。
```
SELECT DIGEST_TEXT, SUM_TIMER_WAIT
FROM performance_schema.events_statements_summary_by_digest
ORDER BY SUM_TIMER_WAIT DESC
LIMIT 10;
```
4. 查看最耗费资源的 SQL:使用以下 SQL 查询 events_statements_summary_by_digest 表,按照总执行时间和总锁等待时间的和降序排序,可以得到消耗系统资源最多的 SQL。
```
SELECT DIGEST_TEXT, (SUM_TIMER_WAIT + SUM_LOCK_TIME) AS TOTAL_TIME
FROM performance_schema.events_statements_summary_by_digest
ORDER BY TOTAL_TIME DESC
LIMIT 10;
```
通过以上步骤,可以得到执行次数最多、执行时间最长、消耗系统资源最多的 SQL,从而找到可能存在性能问题的 SQL,并进行优化。
阅读全文