Performance Schema

介绍

在高负载下调优数据库性能是一个迭代循环的过程。每次进行更改以调优数据库的性能时,都需要了解更改是否有什么影响[1]

  1. 查询速度比以前快吗?

  2. 锁是否会减慢应用程序的速度,或者是否已经完全消失了?

  3. 内存使用情况改变了吗?

  4. 等待磁盘的时间改变了吗?

从哪里去观测这些变化呢?答案就是 Performance Schema。Performance Schema 提供了 MySQL 服务器运行时的资源消耗、资源等待监控[2]

performance-schema

为了解 Performance Schema 的工作原理,需要先了解Instruments消Consumer这两个概念。

Instrument

Instrument 就是 MySQL 所定义的一系列事件编码,代表那些可以被监控的 MySQL 的代码块。 比如wait/lock/meta-data/sql/mdl代表元数据锁的使用情况,更多定义见setup_instruments表。

Consumer

Consumer 就是用来记录监控结果的那些表。如果启用了statement/sql/select instrument, 相应的消费者表中就会记录查询执行总数、未使用索引的次数、花费的时间等信息。

备注

Performance Schema 收集的数据保存在内存中。可以通过设置消费者表的最大大小来限制其使用的内存量。

可以做哪些分析?

如何分析

性能影响

参考