当前位置:   article > 正文

MySQL中数据库表的监控

MySQL中数据库表的监控

 MySQL中数据库表的监控

(1)查看数据库中当前打开了哪些表:show OPEN TABLES ,如图6-1-5所示。另外,还可以通过show OPEN TABLES where In_use > 0过滤出当前已经被锁定的表。

  1. 查看数据库中表的状态:SHOW STATUS LIKE  '%table%',如图6-1-6所示。需要特别注意的是,Table_locks_waited  指的是不能立即获取表级锁而需要等待的次数。如果等待的次数非常大,则说明可能存在锁争抢的情况;如果是频繁的出现锁争抢,则对应用程序的并发性能影响很大。

  1. 查看数据库中锁的信息:SHOW STATUS LIKE '%lock%',如图6-1-7所示。

(4)查看数据库中的表被扫描的情况:show global status like 'handler_read%',如图6-1-8所示。

查询的结果数据也可以用来评估数据库中索引的使用情况。查询的结果数据说明如下所示。

  1. Handler_read_first:从索引中读取第一项的次数。如果该值非常高,表明服务器正在执行大量的全索引扫描。该值一般不宜太高。
  2. Handler_read_key:基于键读取数据行的请求数。该值如果越高,则表明大量的查询都使用了索引;如果越低,表示索引的利用很低。该值一般越高越好。
  3. Handler_read_last:读取索引中最后一个键的请求数。
  4. Handler_read_next:按键顺序读取下一行的请求数。如果查询都走了索引,那么该值将不断递增。
  5. Handler_read_prev:按键顺序读取前一行的请求数(倒序读取数据)。一般用于评估执行ORDER BY … DESC的次数。
  6. Handler_read_rnd:基于固定位置读取数据行的请求数。如果正在执行大量的、需要对查询结果进行排序的查询,则此值很高。如果该值很高,则可能存在很多查询需要进行整表扫描,或者查询时一些表的关联连接没有正确使用主键或者索引。
  7. Handler_read_rnd_deleted:从数据库数据文件中读取被删除记录行的请求数。
  8. Handler_read_rnd_next:从数据库数据文件中读取下一行的请求数。如果SQL语句执行大量表扫描,则此值很高。如果该值很高,一般说明表没有正确添加索引或者SQL语句没有通过索引来查询。

本文节选自《软件性能测试、分析与调优实践之路(第2版)》,获作者和出版社授权发布。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/307165
推荐阅读
相关标签
  

闽ICP备14008679号