站长网 MySql教程 mysql 5.7如何使用sys数据库下的表查询数据库性能情况

mysql 5.7如何使用sys数据库下的表查询数据库性能情况

这篇文章主要介绍mysql 5.7如何使用sys数据库下的表查询数据库性能状况,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 1. 谁使用了最多的资源? 基于ip或是用户? 对于该问题可以从host, user, io三个方面去了解,大概谁的请求最

这篇文章主要介绍mysql 5.7如何使用sys数据库下的表查询数据库性能状况,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
 
1. 谁使用了最多的资源? 基于ip或是用户?
 
对于该问题可以从host, user, io三个方面去了解,大概谁的请求最多。对于使用资源问题可以直接从下面四个视图里有一个
 
大概的了解。
 
   select * from host_summary limit 1\G;
 
   select * from io_global_by_file_by_bytes limit 1\G;
 
   select * from user_summary limit 1\G;
 
   select * from memory_global_total\G;
 
注意:内存部分,不包括innodbbuffer pool。只是server 层申请的内存
 
2. 大部分连接来自哪里及发送的sql情况
 
查看当前连接情况:
 
select host, current_connections,statements from host_summary;
 
查看当前正在执行的sql:
 
select conn_id, user, current_statement, last_statement from session;
 
3. 机器执行最多的sql语句是什么样?
 
查询系统里执行最多的top 10 sql:
 
select * from statement_analysis order byexec_count desc limit 10\G;
 
4. 哪张表的io最多?哪张表访问次数最多
 
select * from io_global_by_file_by_bytes limit 10;
 
哪张表访问次数最多,可以参考上面先查询执行最多的语句,然后查找对应的表,sql如下:
 
select * from statement_analysis order by exec_count desc limit 10\G;
 
5. 哪些语句延迟比较严重
 
statement_analysis中avg_latency的最高的,sql语句:
 
select * from statement_analysis order by avg_latency desc limit 10\G;
 
6. 哪些sql语句使用了磁盘临时表
 
利用statement_analysis 中tmp_tables ,tmp_disk_tables 进行计算,参考sql:
 
select db, query, tmp_tables,tmp_disk_tables  from statement_analysis where tmp_tables>0 or tmp_disk_tables >0
 
order by(tmp_tables+tmp_disk_tables) desc limit 20;
 
7. 哪张表占用了最多的buffer pool
 
查询在buffer pool中占用前10的表,sql如下:
 
select * from innodb_buffer_stats_by_tableorder by pages desc limit 10;
 
8. 每个库占用多少buffer pool
 
select * from innodb_buffer_stats_by_schema;
 
9. 每个连接分配多少内存
 
利用session表和memory_by_thread_by_current_bytes分配表进行关联查询,sql如下:
 
select b.user, current_count_used,current_allocated, current_avg_alloc, current_max_alloc,total_allocated,
 
current_statement from memory_by_thread_by_current_bytes a,session b where a.thread_id = b.thd_id;
 
10. mysql内部现在有多个线程在运行
 
mysql内部的线程类型及数量:
 
select user, count(*) from processlistgroup by user;
 
以上是“mysql 5.7如何使用sys数据库下的表查询数据库性能状况”这篇文章的所有内容,感谢各位的阅读!

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/mysql/2021/1226/43546.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部