一、 Sys schema视图摘要
1. 主机相关:
以host_summary
开头,主要汇总了IO延迟的信息。
2. Innodb相关:
以innodb开头,汇总了innodb buffer信息和事务等待innodb锁的信息。
3. I/o相关:`以io开头,汇总了等待I/O、I/O使用量情况。
4. 内存使用情况:
以memory开头,从主机、线程、事件等角度展示内存的使用情况
5. 连接与会话信息:
processlist和session相关视图,总结了会话相关信息。
6. 表相关:
以schema_table开头的视图,展示了表的统计信息。
7. 索引信息:
统计了索引的使用情况,包含冗余索引和未使用的索引情况。
8. 语句相关:
以statement开头,包含执行全表扫描、使用临时表、排序等的语句信息。
9. 用户相关:
以user开头的视图,统计了用户使用的文件I/O、执行语句统计信息。
10. 等待事件相关信息:
以wait开头,展示等待事件的延迟情况。
二、 Sys schema视图使用场景
2.1、索引相关
2.1.1、查询冗余索引
SELECT *
FROM sys.schema_redundant_indexes;
2.1.2、查询未使用过的索引
SELECT *
FROM sys.schema_unused_indexes;
2.1.3、查询索引的使用情况
SELECT index_name, rows_selected, rows_inserted, rows_updated, rows_deleted
FROM sys.schema_index_statistics
WHERE table_schema = 'dbname';
2.2、表相关
2.2.1、 查询表的访问量
SELECT table_schema, table_name, SUM(io_read_requests + io_write_requests) AS io
FROM sys.schema_table_statistics
GROUP BY table_schema, table_name
ORDER BY io DESC;
2.2.2、 查询占用bufferpool较多的表
SELECT object_schema, object_name, allocated, data
FROM sys.innodb_buffer_stats_by_table
ORDER BY allocated
LIMIT 10;
2.2.3、查看表的全表扫描情况
SELECT *
FROM sys.statements_with_full_table_scans
WHERE db = 'dbname';
2.3、语句相关
2.3.1、监控SQL执行的频率
SELECT db, exec_count, query
FROM sys.statement_analysis
ORDER BY exec_count DESC;
2.3.2、监控使用了排序的SQL
SELECT db, exec_count, first_seen, last_seen, query
FROM sys.statements_with_sorting
LIMIT 1;
2.3.3、监控使用了临时表或者磁盘临时表的SQL
SELECT db, exec_count, tmp_tables, tmp_disk_tables, query
FROM sys.statement_analysis
WHERE tmp_tables > 0
OR tmp_disk_tables > 0
ORDER BY (tmp_tables + tmp_disk_tables) DESC;
2.4、IO相关
2.4.1、查看消耗磁盘IO的文件
SELECT file, avg_read, avg_write, avg_read + avg_write AS avg_io
FROM sys.io_global_by_file_by_bytes
ORDER BY avg_read
LIMIT 10;
2.5、Innodb相关
2.5.1、行锁阻塞情况
SELECT *
FROM sys.innodb_lock_waits;
网友评论