老司机带你体验SYS库多种新玩法

导读

如何更加愉快地利用sys库做一些监控?

快来,跟上老司机,体验sys库的多种新玩法~

MySQL5.7的新特性中,非常突出的特性之一就是sys库,不仅可以通过sys库完成MySQL信息的收集,还可以用来监控和排查问题。

但你知道吗,sys库其实还有很多种玩法,有的或许单看表名就知道了,但有一些,还是需要老司机带路哦~

一.用户、连接类

  1. 查看每个客户端IP过来的连接消耗资源情况。

老司机带你体验SYS库多种新玩法

2、查看每个用户消耗资源情况

老司机带你体验SYS库多种新玩法

3、查看当前连接情况(有多少连接就应该有多少行)

老司机带你体验SYS库多种新玩法

4、查看当前正在执行的SQL和执行show full processlist的效果相当。

老司机带你体验SYS库多种新玩法

二.SQL 和io类

1、查看发生IO请求前三名的文件。

老司机带你体验SYS库多种新玩法

三、buffer pool 、内存

1、查看总共分配了多少内存。

老司机带你体验SYS库多种新玩法

2、每个库(database)占用多少buffer pool

老司机带你体验SYS库多种新玩法

3、统计innodb 引擎的 innodb缓存

pages是指在buffer pool中的page数量;pages_old指在LRU 列表中处于后37%位置的page。

当出现buffer page不够用时,就会征用这些page所占的空间。37%是默认位置,具体可以自定义。

老司机带你体验SYS库多种新玩法

4、统计每张表具体在InnoDB中具体的情况,比如占多少页?

其实和第3例的pages的总数都是相等的,你可以借用sum(pages)运算验证一下哦!

老司机带你体验SYS库多种新玩法

5、查询每个连接分配了多少内存(我这台没什么业务,所以有点不堪),利用session表和memory_by_thread_by_current_bytes分配表进行关联查询。

老司机带你体验SYS库多种新玩法

四、字段、索引、锁

1、查看表自增字段最大值和当前值,有时候做数据增长的监控,可以作为参考,你使用时,不一定要加条件语句。

老司机带你体验SYS库多种新玩法

2、MySQL索引使用情况统计

老司机带你体验SYS库多种新玩法

3、MySQL中有哪些冗余索引和无用索引

若库中展示没有冗余索引,则没有数据;当有联合索引idx_abc(a,b,c)和idx_a(a),那么idx_a就算冗余索引了。

老司机带你体验SYS库多种新玩法

4、查看INNODB 锁信息

在未来的版本将被移除,可以采用其他方式

老司机带你体验SYS库多种新玩法

5、查看库级别的锁信息,这个需要先打开MDL锁的监控:

老司机带你体验SYS库多种新玩法

老司机带你体验SYS库多种新玩法

五.线程类

1、MySQL内部有多个线程在运行,线程类型及数量。

老司机带你体验SYS库多种新玩法