解决方案
1.查看哪些sql执行最多
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN
FROM performance_schema.events_statements_summary_by_digest
where SCHEMA_NAME is not null and SCHEMA_NAME !='information_schema'
ORDER BY COUNT_STAR desc LIMIT 1;
2.哪个SQL平均响应时间最多
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,AVG_TIMER_WAIT,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN
FROM performance_schema.events_statements_summary_by_digest
where SCHEMA_NAME is not null and SCHEMA_NAME !='information_schema'
ORDER BY AVG_TIMER_WAIT desc LIMIT 1;
3.哪个SQL扫描的行数最多(IO消耗)
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,AVG_TIMER_WAIT,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN
FROM performance_schema.events_statements_summary_by_digest
where SCHEMA_NAME is not null and SCHEMA_NAME !='information_schema'
ORDER BY SUM_ROWS_EXAMINED desc LIMIT 1;
4.哪个SQL使用的临时表最多
SELECT SCHEMA_NAME,DIGEST_TEXT,SUM_CREATED_TMP_DISK_TABLES,SUM_CREATED_TMP_TABLES,FIRST_SEEN,LAST_SEEN
FROM performance_schema.events_statements_summary_by_digest
where SCHEMA_NAME is not null and SCHEMA_NAME !='information_schema'
ORDER BY SUM_CREATED_TMP_DISK_TABLES desc LIMIT 1;
5.哪个SQL返回的结果集最多(net消耗)
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,SUM_ROWS_SENT,SUM_ROWS_SENT,FIRST_SEEN,LAST_SEEN
FROM performance_schema.events_statements_summary_by_digest
where SCHEMA_NAME is not null and SCHEMA_NAME !='information_schema'
ORDER BY SUM_ROWS_SENT desc LIMIT 1;
6.哪个SQL排序数最多(CPU消耗)
SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,SUM_ROWS_SENT,SUM_SORT_ROWS,FIRST_SEEN,LAST_SEEN
FROM performance_schema.events_statements_summary_by_digest
where SCHEMA_NAME is not null and SCHEMA_NAME !='information_schema'
ORDER BY SUM_SORT_ROWS desc LIMIT 5;
7.哪个表、文件逻辑IO最多(热数据)
SELECT FILE_NAME,EVENT_NAME,COUNT_READ,SUM_NUMBER_OF_BYTES_READ,COUNT_WRITE,SUM_NUMBER_OF_BYTES_WRITE
FROM performance_schema.file_summary_by_instance
ORDER BY SUM_NUMBER_OF_BYTES_READ+SUM_NUMBER_OF_BYTES_WRITE DESC LIMIT 2;
8.哪个索引使用最多
SELECT OBJECT_NAME, INDEX_NAME, COUNT_FETCH, COUNT_INSERT, COUNT_UPDATE, COUNT_DELETE
FROM performance_schema.table_io_waits_summary_by_index_usage
ORDER BY SUM_TIMER_WAIT DESC limit 1;
9.哪个索引没有使用过
SELECT OBJECT_SCHEMA, OBJECT_NAME, INDEX_NAME
FROM performance_schema.table_io_waits_summary_by_index_usage
WHERE INDEX_NAME IS NOT NULL AND COUNT_STAR = 0 AND OBJECT_SCHEMA <> 'mysql'
ORDER BY OBJECT_SCHEMA,OBJECT_NAME;
10.哪个等待事件消耗的时间最多
SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT, AVG_TIMER_WAIT
FROM events_waits_summary_global_by_event_name
WHERE event_name != 'idle'he
ORDER BY SUM_TIMER_WAIT DESC LIMIT 1;
备注:
因为这些SQL多事基于performance_schema基础的。在mysql目前环境中ps库的指标无法做到100%的信息正确。所以仅作为参考方式