MySQL Performance_schema数据字典

展示MySQL Performance_schema数据字典以及实际使用案例

Posted by Qiyibaba on March 9, 2020

1.setup tables

setup_actors

配置用户纬度的监控,默认监控所有用户

Field Type Null Default 备注
HOST char(60) NO % 主机名
USER char(32) NO % 用户名
ROLE char(16) NO % 规则
ENABLED enum(‘YES’,’NO’) NO YES 是否开启
HISTORY enum(‘YES’,’NO’) NO YES 是否写入历史表

setup_consumers

配置events的消费者类型,即收集的events写入到哪些统计表中

Field Type Null Default 备注
NAME varchar(64) NO NULL 消费者类型名
ENABLED enum(‘YES’,’NO’) NO NULL 是否开
mysql> select * from setup_consumers;
+----------------------------------+---------+
| NAME                             | ENABLED |
+----------------------------------+---------+
| events_stages_current            | YES     |
| events_stages_history            | YES     |
| events_stages_history_long       | YES     |
| events_statements_current        | YES     |
| events_statements_history        | YES     |
| events_statements_history_long   | YES     |
| events_transactions_current      | YES     |
| events_transactions_history      | YES     |
| events_transactions_history_long | YES     |
| events_waits_current             | YES     |
| events_waits_history             | YES     |
| events_waits_history_long        | YES     |
| global_instrumentation           | YES     |
| thread_instrumentation           | YES     |
| statements_digest                | YES     |
+----------------------------------+---------+
15 rows in set (0.00 sec)

setup_instruments

配置具体的instrument,主要包含6大类:idle、stage/xxx、statement/xxx、wait/xxx、memory/xxx、transaction.

Field Type Null Default 备注
NAME varchar(128) NO NULL Instrument name
ENABLED enum(‘YES’,’NO’) NO NULL Instrument是否启用
TIMED enum(‘YES’,’NO’) NO NULL 否收集启用的instrument的定时信息
mysql> select name,count(*) from setup_instruments group by LEFT(name,5);
+-------------------------------------------+----------+
| name                                      | count(*) |
+-------------------------------------------+----------+
| idle                                      |        1 |
| memory/performance_schema/mutex_instances |      380 |
| stage/sql/After create                    |      132 |
| statement/sql/select                      |      194 |
| transaction                               |        1 |
| wait/synch/mutex/sql/TC_LOG_MMAP::LOCK_tc |      320 |
+-------------------------------------------+----------+
6 rows in set (0.00 sec)

setup_objects

配置监控对象,默认对mysql,performance_schema和information_schema中的表都不监控,而其它DB的所有表都监控

Field Type Null Default 备注
OBJECT_TYPE enum(‘EVENT’,’FUNCTION’,
‘PROCEDURE’,’TABLE’,’TRIGGER’)
NO TABLE 监控类型
OBJECT_SCHEMA varchar(64) YES % 库名
OBJECT_NAME varchar(64) NO % Object name
ENABLED enum(‘YES’,’NO’) NO YES 是否开启
TIMED enum(‘YES’,’NO’) NO YES 是否计时

示例

-- 假设setup_objects包含以下行:
+-------------+---------------+-------------+---------+-------+
| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |
+-------------+---------------+-------------+---------+-------+
| TABLE       | db1           | t1          | YES     | YES   |
| TABLE       | db1           | t2          | YES     | NO    |
| TABLE       | db2           | %           | YES     | YES   |
| TABLE       | db3           | %           | YES     | NO    |
| TABLE       | %             | %           | YES     | YES   |
+-------------+---------------+-------------+---------+-------+
-- 如果一个与表相关的仪表在setup_instruments的TIMED值为NO,该仪表产生事件没有时间信息。如果TIMED值为yes,事件计时情况如下:
-- db1.t1 事件被计时
-- db1.t2 事件不被计时
-- db2.t3事件被计时
-- db3.t4事件不被计时
-- db4.t5事件被计时

setup_timers

配置每种类型指令的统计时间单位.MICROSECOND表示统计单位是微妙,CYCLE表示统计单位是时钟周期,时间度量与CPU的主频有关,NANOSECOND表示统计单位是纳秒,关于每种类型的具体含义,可以参考performance_timer这个表。由于wait类包含的都是等待事件,单个SQL调用次数比较多,因此选择代价最小的度量单位cycle。但无论采用哪种度量单位,最终统计表中统计的时间都会装换到皮秒。

Field Type Null Default 备注
NAME varchar(64) NO NULL 监控类型
TIMER_NAME enum(‘CYCLE’,’NANOSECOND’,
‘MICROSECOND’,’MILLISECOND’,’TICK’)
NO NULL 计时器的名称

示例

mysql> select * from setup_timers;
+-------------+-------------+
| NAME        | TIMER_NAME  |
+-------------+-------------+
| idle        | MICROSECOND |
| wait        | CYCLE       |
| stage       | NANOSECOND  |
| statement   | NANOSECOND  |
| transaction | NANOSECOND  |
+-------------+-------------+
5 rows in set (0.00 sec)

​ 对于wait类型,最重要的是减少开销,所以选择CYCLE类型,相应的代价是损失计时精度。Statement,stage,transaction的执行时间总的来说,相比wait要高一个数量级。为了给statement计时,最重要的是原则是要有一个精确的衡量,并且不受处理器频率影响,因此默认的为NANOSECOND,其额外的‘OVERHEAD’相比CYCLE TIMER并不明显,因为调用一个timer两次的开销(一次是statement开始,一次是statement结束)相比statement执行本身的CPU时间要小很多个数量级。如果使用CYCLE,只有坏处,没有好处。

​ cycle计数器的精度依赖于CPU的速度,使用CYCLE 计数器实际上比使用标准gettimeofday的开销要小,后者的一次调用可能产生上百次cycle。

2.instance tables

cond_instances

条件同步对象实例

Field Type Null Default 备注
NAME varchar(128) NO NULL 与条件关联仪表
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 条件在内存被检测的地址

file_instances

文件实例

Field Type Null Default 备注
FILE_NAME varchar(512) NO NULL 文件地址
EVENT_NAME varchar(128) NO NULL 事件名
OPEN_COUNT int(10) unsigned NO NULL 文件打开次数

mutex_instances

互斥锁同步对象实例

Field Type Null Default 备注
NAME varchar(128) NO NULL 与互斥相关的仪表
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 互斥锁在内存中被检测的地址
LOCKED_BY_THREAD_ID bigint(20) unsigned YES NULL 当一个线程目前有互斥锁,该字段为正获得锁的线程id,否则是null

rwlock_instances

锁同步对象实例

Field Type Null Default 备注
NAME varchar(128) NO NULL 与锁相关的仪表名
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 锁在内存中被检测的地址
WRITE_LOCKED_BY_THREAD_ID bigint(20) unsigned YES NULL 当一个线程目前有一个互斥模式(写)rwlock锁, 值是正锁着的线程ID,否则它是空的
READ_LOCKED_BY_COUNT int(10) unsigned NO NULL 当一个线程目前有一个共享(读)模式rwlock锁, 改值增加1。这是一个计数器,所以它不能直接用来找到哪个线程拥有读锁,但它可以用来查看在rwlock锁是否有读争用,看看目前有多少读锁是活跃的。

socket_instances

活跃连接实例实例

Field Type Null Default 备注
EVENT_NAME varchar(128) NO NULL wait/io/socket/*仪表产生的事件
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 这列唯一地标识该套接字。这个值是一个对象在内存的地址
THREAD_ID bigint(20) unsigned YES NULL 服务器指定的内部线程标识符。每个套接字是由一个单独线程管理,所以每个套接字可以被映射到一个线程可以被映射到一个服务器进程。
SOCKET_ID int(11) NO NULL 分配给套接字的内部文件handle
IP varchar(64) NO NULL 客户端IP地址。值可以是一个IPv4和IPv6地址,或空白表示一个Unix socket文件连接
PORT int(11) NO NULL 客户端IP地址。值可以是一个IPv4和IPv6地址,或空白表示一个Unix socket文件连接
STATE enum(‘IDLE’,’ACTIVE’) NO NULL 套接字状态,要么IDLE要么ACTIVE

3.Wait event tables

events_waits_current

当前等待的事件

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL 线程ID
EVENT_ID bigint(20) unsigned NO NULL 当前线程的事件ID,和THREAD_ID确定唯一
END_EVENT_ID bigint(20) unsigned YES NULL 当事件开始时,这一列被设置为NULL。当事件结束时,再更新为当前的事件ID
EVENT_NAME varchar(128) NO NULL 事件名称
SOURCE varchar(64) YES NULL 该事件产生时的源码文件
TIMER_START bigint(20) unsigned YES NULL 事件开始时间(皮秒)
TIMER_END bigint(20) unsigned YES NULL 事件结束结束时间(皮秒)
TIMER_WAIT bigint(20) unsigned YES NULL 事件等待时间(皮秒)
SPINS int(10) unsigned YES NULL  
OBJECT_SCHEMA varchar(64) YES NULL 库名
OBJECT_NAME varchar(512) YES NULL 文件名、表名、IP:SOCK值
INDEX_NAME varchar(64) YES NULL 索引名
OBJECT_TYPE varchar(64) YES NULL FILE、TABLE、TEMPORARY TABLE
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 内存地址
NESTING_EVENT_ID bigint(20) unsigned YES NULL 该事件对应的父事件ID
NESTING_EVENT_TYPE enum(‘TRANSACTION’,
‘STATEMENT’,’STAGE’,’WAIT’)
YES NULL 父事件类型(STATEMENT, STAGE, WAIT)
OPERATION varchar(32) NO NULL 操作类型(lock, read, write)
NUMBER_OF_BYTES bigint(20) YES NULL 该操作读取或写的字节数。对于表I / O等待, NUMBER_OF_BYTES是NULL
FLAGS int(10) unsigned YES NULL 标记

events_waits_history

每个线程的最近等待时间的表结构同events_waits_current

events_waits_history_long

所有的最近等待时间的表结构同events_waits_current

4.Stage tables

events_stages_current

当前的阶段时间

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL 线程ID
EVENT_ID bigint(20) unsigned NO NULL 事件ID
END_EVENT_ID bigint(20) unsigned YES NULL 结束事件ID
EVENT_NAME varchar(128) NO NULL 事件名称
SOURCE varchar(64) YES NULL 源码位置
TIMER_START bigint(20) unsigned YES NULL 事件开始时间(皮秒)
TIMER_END bigint(20) unsigned YES NULL 事件结束结束时间(皮秒)
TIMER_WAIT bigint(20) unsigned YES NULL 事件等待时间(皮秒)
WORK_COMPLETED bigint(20) unsigned YES NULL  
WORK_ESTIMATED bigint(20) unsigned YES NULL  
NESTING_EVENT_ID bigint(20) unsigned YES NULL 该事件对应的父事件ID
NESTING_EVENT_TYPE enum(‘TRANSACTION’,
‘STATEMENT’,’STAGE’,’WAIT’)
YES NULL 父事件类型(STATEMENT, STAGE, WAIT)

events_stages_history

每个线程的最近阶段事件表结构同events_stages_current

events_stages_history_long

所有的最近阶段事件表结构同events_stages_current

5.Statement tables

events_statements_current

当前的语句事件

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL 线程ID
EVENT_ID bigint(20) unsigned NO NULL 事件ID,与事件关联的线程和事件启动时的线程当前事件编号。一起使用的THREAD_ID和EVENT_ID值唯一标识该行。没有两行具有相同的值对。
END_EVENT_ID bigint(20) unsigned YES NULL 结束事件ID,当事件结束时事件启动并更新为线程当前事件编号时,此列设置为NULL
EVENT_NAME varchar(128) NO NULL 收集事件的仪器的名称。这是来自setup_instruments表的NAME值。仪器名称可能具有多个部分并形成层次结构.对于SQL语句,EVENT_NAME值最初是语句/ com / Query,直到语句被解析,然后更改为更合适的值.
SOURCE varchar(64) YES NULL 源文件的名称,其中包含产生事件的检测代码和检测到的文件中的行号。这使您可以检查源代码以确定涉及的代码
TIMER_START bigint(20) unsigned YES NULL 事件开始时间(皮秒)
TIMER_END bigint(20) unsigned YES NULL 事件结束结束时间(皮秒)
TIMER_WAIT bigint(20) unsigned YES NULL 事件等待时间(皮秒),如果事件尚未完成,则TIMER_END为当前计时器值,TIMER_WAIT为目前为止所经过的时间(TIMER_END - TIMER_START)
LOCK_TIME bigint(20) unsigned NO NULL 锁时间
SQL_TEXT longtext YES NULL SQL语句的文本。对于与SQL语句无关的命令,该值为NULL。默认情况下,可用于语句显示的最大空间为1024字节
DIGEST varchar(32) YES NULL 对SQL_TEXT做MD5产生的32位字符串
DIGEST_TEXT longtext YES NULL 将语句中值部分用问号代替,用于SQL语句归类
CURRENT_SCHEMA varchar(64) YES NULL 语句的默认数据库,如果没有则为NULL。
OBJECT_TYPE varchar(64) YES NULL 对于嵌套语句(存储的程序),这些列包含有关父语句的信息。否则它们为NULL。
OBJECT_SCHEMA varchar(64) YES NULL 对于嵌套语句(存储的程序),这些列包含有关父语句的信息。否则它们为NULL。
OBJECT_NAME varchar(64) YES NULL 对于嵌套语句(存储的程序),这些列包含有关父语句的信息。否则它们为NULL。
OBJECT_INSTANCE_BEGIN bigint(20) unsigned YES NULL 此列标识语句。该值是内存中对象的地址。
MYSQL_ERRNO int(11) YES NULL 语句错误号,来自语句诊断区。
RETURNED_SQLSTATE varchar(5) YES NULL 该语句SQLSTATE值,来自语句诊断区域
MESSAGE_TEXT varchar(128) YES NULL 信息
ERRORS bigint(20) unsigned NO NULL 错误数目
WARNINGS bigint(20) unsigned NO NULL 警告数目
ROWS_AFFECTED bigint(20) unsigned NO NULL 影响的数目
ROWS_SENT bigint(20) unsigned NO NULL 返回的记录数
ROWS_EXAMINED bigint(20) unsigned NO NULL 读取扫描的记录数目
CREATED_TMP_DISK_TABLES bigint(20) unsigned NO NULL 创建磁盘临时表数目
CREATED_TMP_TABLES bigint(20) unsigned NO NULL 创建临时表数目
SELECT_FULL_JOIN bigint(20) unsigned NO NULL join时,第一个表为全表扫描的数目
SELECT_FULL_RANGE_JOIN bigint(20) unsigned NO NULL 引用表采用range方式扫描的数目
SELECT_RANGE bigint(20) unsigned NO NULL join时,第一个表采用range方式扫描的数目
SELECT_RANGE_CHECK bigint(20) unsigned NO NULL  
SELECT_SCAN bigint(20) unsigned NO NULL join时,第一个表位全表扫描的数目
SORT_MERGE_PASSES bigint(20) unsigned NO NULL  
SORT_RANGE bigint(20) unsigned NO NULL 范围排序数目
SORT_ROWS bigint(20) unsigned NO NULL 排序的记录数目
SORT_SCAN bigint(20) unsigned NO NULL 全表排序数目
NO_INDEX_USED bigint(20) unsigned NO NULL 没有使用索引数目
NO_GOOD_INDEX_USED bigint(20) unsigned NO NULL  
NESTING_EVENT_ID bigint(20) unsigned YES NULL 该事件对应的父事件ID
NESTING_EVENT_TYPE enum(‘TRANSACTION’,
‘STATEMENT’,’STAGE’,’WAIT’)
YES NULL 父事件类型(STATEMENT, STAGE, WAIT)
NESTING_EVENT_LEVEL int(11) YES NULL  

示例

​ 语句事件表(events_statements_current, events_statements_history, 和 events_statements_history_long)有DIGEST和DIGEST_TEXT列包含文摘MD5值和相应的标准化的语句文本字符串。

​ 一个events_statements_summary_by_digest表提供语句文摘的聚合信息。标准化语句有一个固定的长度。DIGEST_TEXT最大长度是1024个字节。

mysql> show variables like '%max_digest_length%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| max_digest_length                    | 1024  |
| performance_schema_max_digest_length | 1024  |
+--------------------------------------+-------+

​ 没有选项来更改这个最大值。如果标准化生产一个语句,超过这个长度,文本以“…”结束。长语句差别只发生在“…”的部分,被认为是相同的。考虑这些语句:

SELECT * FROM mytable WHERE cola = 10 AND colb = 20
SELECT * FROM mytable WHERE cola = 10 AND colc = 20
-- 如果截取碰巧就在右边的and 的部分,两个语句会有这种标准化形式:
SELECT * FROM mytable WHERE cola = ? AND ...
-- 在这种情况下,这种在第二列的名字差异被失去了和两个语句被认为是相同的。

-- 执行查询:select * from test where col1='a';
mysql> select * from events_statements_current\G;
*************************** 2. row ***************************
......
​               SQL_TEXT: select * from test where col1='a'
​            DIGEST_TEXT: SELECT * FROM `test` WHERE `col1` = ? 
......
-- 执行查询:select * from test where col1='c';
mysql> select * from events_statements_current\G;
*************************** 2. row ***************************
......
​               SQL_TEXT: select * from test where col1='c'
​            DIGEST_TEXT: SELECT * FROM `test` WHERE `col1` = ? 
......

events_statements_history

每个线程最近的语句事件表结构同events_statements_current

events_statements_history_long

所有的最近的语句事件表结构同events_statements_current

示例

-- 实例:分析具体某条SQL,该SQL在执行各个阶段的时间消耗,通过events_statements_xxx表和events_stages_xxx表,就可以达到目的。
mysql> select count(*) from lt.apsm;
+----------+
| count(*) |
+----------+
|  2000000 |
+----------+
1 row in set (10.13 sec) 
mysql> SELECT EVENT_ID,sql_text FROM events_statements_history WHERE sql_text LIKE '%count(*)%';
+----------+----------------------------------------------------------------------------+
| EVENT_ID | sql_text                                                                   |
+----------+----------------------------------------------------------------------------+
|    38645 | select count(*) from lt.apsm                                               |
|  1063453 | SELECT EVENT_ID,sql_text FROM events_statements_current WHERE sql_text LIKE '%count(*)%' |
|    38184 | select count(*) from lt.test                                               |
+----------+----------------------------------------------------------------------------+
3 rows in set (0.00 sec) 
mysql> SELECT event_id,EVENT_NAME,SOURCE,sys.format_time(TIMER_END - TIMER_START) FROM events_stages_history_long WHERE NESTING_EVENT_ID = 38645;
+----------+--------------------------------+--------------------------+------------------------------------------+
| event_id | EVENT_NAME                     | SOURCE                   | sys.format_time(TIMER_END - TIMER_START) |
+----------+--------------------------------+--------------------------+------------------------------------------+
|    38646 | stage/sql/starting             | socket_connection.cc:97  | 90.54 us                                  |
|    38651 | stage/sql/checking permissions | sql_authorization.cc:835 | 5.35 us                                  |
|    38653 | stage/sql/Opening tables       | sql_base.cc:5649         | 151.09 us                                |
|    38665 | stage/sql/init                 | sql_select.cc:121        | 16.76 us                                  |
|    38668 | stage/sql/System lock          | lock.cc:323              | 11.35 us                                  |
|    38675 | stage/sql/optimizing           | sql_optimizer.cc:151     | 10.12 s                                  |
|  1063438 | stage/sql/executing            | sql_executor.cc:119      | 13.77 us                                  |
|  1063439 | stage/sql/end                  | sql_select.cc:199        | 2.85 us                                  |
|  1063440 | stage/sql/query end            | sql_parse.cc:5012        | 13.71 us                                  |
|  1063444 | stage/sql/closing tables       | sql_parse.cc:5064        | 15.05 us                                  |
|  1063448 | stage/sql/freeing items        | sql_parse.cc:5638        | 24.55 us                                  |
|  1063450 | stage/sql/cleaning up          | sql_parse.cc:1901        | 2.28 us                                  |
+----------+--------------------------------+--------------------------+------------------------------------------+12 rows in set (0.01 sec)

prepared_statements_instances

准备的语句实例和统计信息

Field Type Null Default 备注
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 记录仪器化准备声明的地址
STATEMENT_ID bigint(20) unsigned NO NULL 由服务器分配的内部语句ID。文本和二进制协议都使用语句ID。
STATEMENT_NAME varchar(64) YES NULL 对于二进制协议,此列为NULL。对于文本协议,此列是用户分配的外部语句名称。例如,对于以下SQL语句,准备语句的名称为stmt:PREPARE stmt FROM’SELECT 1’;
SQL_TEXT longtext NO NULL 准备好的语句文本?占位符标记
OWNER_THREAD_ID bigint(20) unsigned NO NULL 指示创建准备语句的事件
OWNER_EVENT_ID bigint(20) unsigned NO NULL 指示创建准备语句的事件
OWNER_OBJECT_TYPE enum(‘EVENT’,’FUNCTION’,
‘PROCEDURE’,’TABLE’,’TRIGGER’)
YES NULL  
OWNER_OBJECT_SCHEMA varchar(64) YES NULL  
OWNER_OBJECT_NAME varchar(64) YES NULL  
TIMER_PREPARE bigint(20) unsigned NO NULL 执行声明准备本身的时间
COUNT_REPREPARE bigint(20) unsigned NO NULL 声明在内部重新准备的次数
COUNT_EXECUTE bigint(20) unsigned NO NULL  
SUM_TIMER_EXECUTE bigint(20) unsigned NO NULL  
MIN_TIMER_EXECUTE bigint(20) unsigned NO NULL  
AVG_TIMER_EXECUTE bigint(20) unsigned NO NULL  
MAX_TIMER_EXECUTE bigint(20) unsigned NO NULL  
SUM_LOCK_TIME bigint(20) unsigned NO NULL  
SUM_ERRORS bigint(20) unsigned NO NULL  
SUM_WARNINGS bigint(20) unsigned NO NULL  
SUM_ROWS_AFFECTED bigint(20) unsigned NO NULL  
SUM_ROWS_SENT bigint(20) unsigned NO NULL  
SUM_ROWS_EXAMINED bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_DISK_TABLES bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_TABLES bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_RANGE_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE_CHECK bigint(20) unsigned NO NULL  
SUM_SELECT_SCAN bigint(20) unsigned NO NULL  
SUM_SORT_MERGE_PASSES bigint(20) unsigned NO NULL  
SUM_SORT_RANGE bigint(20) unsigned NO NULL  
SUM_SORT_ROWS bigint(20) unsigned NO NULL  
SUM_SORT_SCAN bigint(20) unsigned NO NULL  
SUM_NO_INDEX_USED bigint(20) unsigned NO NULL  
SUM_NO_GOOD_INDEX_USED bigint(20) unsigned NO NULL  

示例

mysql> select * from prepared_statements_instances\G
Empty set (0.01 sec)

mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse'; 
Query OK, 0 rows affected (0.01 sec)
Statement prepared

mysql> select * from prepared_statements_instances\G;
*************************** 1. row ***************************
​      OBJECT_INSTANCE_BEGIN: 386397440
​               STATEMENT_ID: 1
​             STATEMENT_NAME: stmt1
​                   SQL_TEXT: SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse
​            OWNER_THREAD_ID: 276
​             OWNER_EVENT_ID: 2757
​          OWNER_OBJECT_TYPE: NULL
​        OWNER_OBJECT_SCHEMA: NULL
​          OWNER_OBJECT_NAME: NULL
​              TIMER_PREPARE: 12436401000
​            COUNT_REPREPARE: 0
​              COUNT_EXECUTE: 1
​          SUM_TIMER_EXECUTE: 199554000
​          MIN_TIMER_EXECUTE: 199554000
​          AVG_TIMER_EXECUTE: 199554000
​          MAX_TIMER_EXECUTE: 199554000
​              SUM_LOCK_TIME: 0
​                 SUM_ERRORS: 0
​               SUM_WARNINGS: 0
​          SUM_ROWS_AFFECTED: 0
​              SUM_ROWS_SENT: 1
​          SUM_ROWS_EXAMINED: 0
​SUM_CREATED_TMP_DISK_TABLES: 0
​     SUM_CREATED_TMP_TABLES: 0
​       SUM_SELECT_FULL_JOIN: 0
​ SUM_SELECT_FULL_RANGE_JOIN: 0
​           SUM_SELECT_RANGE: 0
​     SUM_SELECT_RANGE_CHECK: 0
​            SUM_SELECT_SCAN: 0
​      SUM_SORT_MERGE_PASSES: 0
​             SUM_SORT_RANGE: 0
​              SUM_SORT_ROWS: 0
​              SUM_SORT_SCAN: 0
​          SUM_NO_INDEX_USED: 0
​     SUM_NO_GOOD_INDEX_USED: 0
1 row in set (0.00 sec)

mysql> SET @a = 3;
Query OK, 0 rows affected (0.00 sec)

mysql> SET @b = 4;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from user_variables_by_thread;
+-----------+---------------+----------------+
| THREAD_ID | VARIABLE_NAME | VARIABLE_VALUE |
+-----------+---------------+----------------+
|       276 | a             | 3              |
|       276 | b             | 4              |
+-----------+---------------+----------------+
2 rows in set (0.00 sec)

mysql> EXECUTE stmt1 USING @a, @b;
+------------+
| hypotenuse |
+------------+
|          5 |
+------------+
1 row in set (0.00 sec)

mysql> DEALLOCATE PREPARE stmt1;
Query OK, 0 rows affected (0.00 sec)

6.transaction tables

events_transactions_current

当前的事务事件

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL 线程id
EVENT_ID bigint(20) unsigned NO NULL 事件id
END_EVENT_ID bigint(20) unsigned YES NULL 当事件结束时事件启动并更新为线程当前事件编号时,此列设置为NULL。
EVENT_NAME varchar(128) NO NULL 收集事件的仪器的名称。这是来自setup_instruments表的NAME值
STATE enum(‘ACTIVE’
,’COMMITTED’
,’ROLLED BACK’)
YES NULL 当前交易状态。值为ACTIVE(START TRANSACTION或BEGIN),COMMITTED(COMMITTED),或ROLLED BACK(ROLLBACK后)
TRX_ID bigint(20) unsigned YES NULL unused
GTID varchar(64) YES NULL GTID列包含gtid_next的值,它可以是使用格式UUID:NUMBER的ANONYMOUS,AUTOMATIC或GTID之一。对于使用gtid_next = AUTOMATIC(即所有正常客户端事务)的事务,GTID列在事务提交和实际GTID分配时都会更改。如果gtid_mode为ON或ON_PERMISSIVE,GTID列将更改为事务的GTID。如果gtid_mode为OFF或OFF_PERMISSIVE,则GTID列将更改为ANONYMOUS。
XID_FORMAT_ID int(11) YES NULL XA事务标识符的组件
XID_GTRID varchar(130) YES NULL XA事务标识符的组件
XID_BQUAL varchar(130) YES NULL XA事务标识符的组件
XA_STATE varchar(64) YES NULL XA交易的状态。值为ACTIVE(XA START之后),IDLE(XA END之后),PREPARED(XA PREPARE之后),ROLLED BACK(XA ROLLBACK后)或COMMITTED(XA COMMIT之后)
SOURCE varchar(64) YES NULL 源文件的名称,其中包含产生事件的检测代码和检测到的文件中的行号
TIMER_START bigint(20) unsigned YES NULL 开始时间
TIMER_END bigint(20) unsigned YES NULL 结束时间
TIMER_WAIT bigint(20) unsigned YES NULL 持续时间
ACCESS_MODE enum(‘READ
ONLY’,’READ WRITE’)
YES NULL 交易访问模式。该值为READ ONLY或READ WRITE。
ISOLATION_LEVEL varchar(64) YES NULL 事务隔离级别。值为REPEATABLE READ,READ COMMITTED,READ UNCOMMITTED或SERIALIZABLE。
AUTOCOMMIT enum(‘YES’,’NO’) NO NULL 在事务开始时是否启用自动提交模式
NUMBER_OF_SAVEPOINTS bigint(20) unsigned YES NULL 在交易期间发出的SAVEPOINT语句的数量
NUMBER_OF_ROLLBACK_TO_SAVEPOINT bigint(20) unsigned YES NULL 在交易期间发出的ROLLBACK TO SAVEPOINT语句的数量
NUMBER_OF_RELEASE_SAVEPOINT bigint(20) unsigned YES NULL 在交易期间发出的RELEASE SAVEPOINT语句的数量
OBJECT_INSTANCE_BEGIN bigint(20) unsigned YES NULL unused
NESTING_EVENT_ID bigint(20) unsigned YES NULL 事件嵌套的事件的EVENT_ID值
NESTING_EVENT_TYPE enum(‘TRANS
ACTION’,
‘STATEMENT’,
‘STAGE’,’WAIT’)
YES NULL 嵌套事件类型。值为TRANSACTION,STATEMENT,STAGE或WAIT。 (由于事务无法嵌套,因此不会出现TRANSACTION)

events_transactions_history

表结构同events_transactions_current

events_transactions_history_long

表结构同events_transactions_current

7.connection tables

Accounts

每个客户端连接统计表

Field Type Null Default 备注
USER char(32) YES NULL 用户名
HOST char(60) YES NULL 主机
CURRENT_CONNECTIONS bigint(20) NO NULL 当前的连接个数
TOTAL_CONNECTIONS bigint(20) NO NULL 历史总连接次数
-- 使用案例:使用连接池创建10个连接
mysql> select * from accounts;
+------+--------------+---------------------+-------------------+
| USER | HOST         | CURRENT_CONNECTIONS | TOTAL_CONNECTIONS |
+------+--------------+---------------------+-------------------+
| NULL | NULL         |                  49 |               122 |
| root | localhost    |                   2 |               190 |
| root | 10.41.168.11 |                  10 |                11 |**
+------+--------------+---------------------+-------------------+
3 rows in set (0.00 sec)

-- 释放连接
mysql> select * from accounts;
+------+--------------+---------------------+-------------------+
| USER | HOST         | CURRENT_CONNECTIONS | TOTAL_CONNECTIONS |
+------+--------------+---------------------+-------------------+
| NULL | NULL         |                  49 |               122 |
| root | localhost    |                   2 |               190 |
| root | 10.41.168.11 |                   0 |                11 |**
+------+--------------+---------------------+-------------------+

hosts

每个客户端连接主机统计

Field Type Null Default 备注
HOST char(60) YES NULL 主机
CURRENT_CONNECTIONS bigint(20) NO NULL 当前连接数
TOTAL_CONNECTIONS bigint(20) NO NULL 总连接数

users

每个客户端连接用户名统计

Field Type Null Default 备注
USER char(32) YES NULL 用户名
CURRENT_CONNECTIONS bigint(20) NO NULL 当前连接数
TOTAL_CONNECTIONS bigint(20) NO NULL 总连接数

8.connection Attribute Tables

session_account_connect_attrs

当前会话的连接属性

Field Type Null Default 备注
PROCESSLIST_ID int(11) NO NULL 会话的连接标识符
ATTR_NAME varchar(32) NO NULL 属性名称
ATTR_VALUE varchar(1024) YES NULL 属性值
ORDINAL_POSITION int(11) YES NULL 属性被添加到连接属性集合的顺序

session_connect_attrs

所有会话的连接属性

Field Type Null Default 备注
PROCESSLIST_ID int(11) NO NULL 会话的连接标识符
ATTR_NAME varchar(32) NO NULL 属性名称
ATTR_VALUE varchar(1024) YES NULL 属性值
ORDINAL_POSITION int(11) YES NULL 属性被添加到连接属性集合的顺序
mysql> select * from session_connect_attrs;
+----------------+------------------+----------------------+------------------+
| PROCESSLIST_ID | ATTR_NAME        | ATTR_VALUE           | ORDINAL_POSITION |
+----------------+------------------+----------------------+------------------+
|            224 | _os              | Linux                |                0 |
|            224 | _client_name     | libmysql             |                1 |
|            224 | _pid             | 10020                |                2 |
|            224 | _client_version  | 5.7.17               |                3 |
|            224 | _platform        | x86_64               |                4 |
|            224 | program_name     | mysql                |                5 |
|            225 | _os              | Linux                |                0 |
|            225 | _client_name     | libmysql             |                1 |
|            225 | _pid             | 38805                |                2 |
|            225 | _client_version  | 5.7.17               |                3 |
|            225 | _platform        | x86_64               |                4 |
|            225 | program_name     | mysql                |                5 |
|            226 | _os              | Linux                |                0 |
|            226 | _client_name     | libmysql             |                1 |
|            226 | _pid             | 4957                 |                2 |
|            226 | _client_version  | 5.7.17               |                3 |
|            226 | _platform        | x86_64               |                4 |
|            226 | program_name     | mysql                |                5 |
|            229 | _os              | Win64                |                0 |
|            229 | _client_name     | libmysql             |                1 |
|            229 | _pid             | 119544               |                2 |
|            229 | _thread          | 118952               |                3 |
|            229 | _platform        | x86_64               |                4 |
|            229 | program_name     | mysql                |                5 |
|            229 | _client_version  | 5.7.18               |                6 |
|            230 | _runtime_version | 1.8.0_144            |                0 |
|            230 | _client_version  | 5.1.31               |                1 |
|            230 | _client_name     | MySQL Connector Java |                2 |
|            230 | _client_license  | GPL                  |                3 |
|            230 | _runtime_vendor  | Oracle Corporation   |                4 |
+----------------+------------------+----------------------+------------------+
30 rows in set (0.00 sec)

_client_name:客户端名称(客户端库的libmysql)
_client_version:客户端库版本
_os:操作系统(例如Linux,Win64)
_pid:客户端进程ID
_platform:机器平台(例如,x86_64)
_thread:客户端线程ID(仅限Windows)

MySQL Connector / J定义了这些属性:
_client_license:连接器许可证类型
_runtime_vendor:Java运行时环境(JRE)供应商
_runtime_version:Java运行时环境(JRE)版本

9.User Variable Tables

user_variables_by_thread

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL 定义变量的会话的线程标识符
VARIABLE_NAME varchar(64) NO NULL 变量名称,没有前导@字符
VARIABLE_VALUE longblob YES NULL 变量值

10.replication tables

replication_applier_configuration

从上的事务应用程序的配置参数

Field Type Null Default 备注
CHANNEL_NAME char(64) NO NULL 复制通道
DESIRED_DELAY int(11) NO NULL 从机必须落后主机的秒数,(CHANGE MASTER TO选项:MASTER_DELAY)

表列和show slave status列对应关系:

replication_applier_configuration Column SHOW SLAVE STATUS Column
DESIRED_DELAY SQL_Delay

replication_applier_status

从上的事务应用程序的当前状态

Field Type Null Default 备注
CHANNEL_NAME char(64) NO NULL 复制通道
SERVICE_STATE enum(‘ON’,’OFF’) NO NULL 当复制通道的应用程序线程处于活动状态或空闲状态时显示ON,OFF表示应用程序线程未处于活动状态。
REMAINING_DELAY int(10) unsigned YES NULL 如果从主机应用事件后,从机正在等待DESIRED_DELAY秒,则该字段包含剩余的延迟秒数。在其他时候,此字段为NULL。 (DESIRED_DELAY值存储在replication_applier_configuration表中。)
COUNT_TRANSACTIONS_RETRIES bigint(20) unsigned NO NULL 显示由于从属SQL线程无法应用事务而进行的重试次数。

表列和show slave status列对应关系:

replication_applier_status Column SHOW SLAVE STATUS Column
SERVICE_STATE None
REMAINING_DELAY SQL_Remaining_Delay

replication_applier_status_by_coordinator

协调器线程的状态(空,除非从机为多线程)

Field Type Null Default 备注
CHANNEL_NAME char(64) NO NULL 复制通道
THREAD_ID bigint(20) unsigned YES NULL SQL /协调器线程ID
SERVICE_STATE enum(‘ON’,’OFF’) NO NULL ON(线程存在且处于活动状态或空闲状态)或OFF(线程不再存在)
LAST_ERROR_NUMBER int(11) NO NULL 导致SQL /协调器线程停止的最新错误的错误号和错误消息。错误编号为0,作为空字符串的消息表示“无错误”。如果LAST_ERROR_MESSAGE值不为空,则错误值也会显示在从站的错误日志中
LAST_ERROR_MESSAGE varchar(1024) NO NULL  
LAST_ERROR_TIMESTAMP timestamp NO CURRENT_TIMESTAMP YYMMDD HH:MM:SS格式中的时间戳记,显示最近发生的SQL /协调器错误
mysql> select * from replication_applier_status_by_coordinator\G;
*************************** 1. row ***************************
​        CHANNEL_NAME: 
​           THREAD_ID: 52
​       SERVICE_STATE: ON
   LAST_ERROR_NUMBER: 0
  LAST_ERROR_MESSAGE: 
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
1 row in set (0.01 sec)

mysql> select * from threads where thread_id='52'\G;
*************************** 1. row ***************************
​          THREAD_ID: 52
​               NAME: thread/sql/slave_sql --SQL线程
​               TYPE: FOREGROUND
​     PROCESSLIST_ID: 2
   PROCESSLIST_USER: NULL
   PROCESSLIST_HOST: NULL
​     PROCESSLIST_DB: NULL
PROCESSLIST_COMMAND: Connect
   PROCESSLIST_TIME: 3502
  PROCESSLIST_STATE: Slave has read all relay log; waiting for more updates
   PROCESSLIST_INFO: NULL
   PARENT_THREAD_ID: 1
​               ROLE: NULL
​       INSTRUMENTED: YES
​            HISTORY: YES
​    CONNECTION_TYPE: NULL
​       THREAD_OS_ID: 17031
1 row in set (0.00 sec)

表列和show slave status列对应关系:

replication_applier_status_by_coordinator Column SHOW SLAVE STATUS Column
THREAD_ID None
SERVICE_STATE Slave_SQL_Running
LAST_ERROR_NUMBER Last_SQL_Errno
LAST_ERROR_MESSAGE Last_SQL_Error
LAST_ERROR_TIMESTAMP Last_SQL_Error_Timestamp

replication_applier_status_by_worker

如果从是多线程的,则应用程序线程或工作线程的状态

Field Type Null Default 备注
CHANNEL_NAME char(64) NO NULL 复制通道
WORKER_ID bigint(20) unsigned NO NULL 工作标识符(与mysql.slave_worker_info表中的id列相同的值)。 STOP SLAVE后,THREAD_ID列变为NULL,但WORKER_ID值被保留。
THREAD_ID bigint(20) unsigned YES NULL 工作线程标识符
SERVICE_STATE enum(‘ON’,’OFF’) NO NULL ON(线程存在且处于活动状态或空闲状态)或OFF(线程不再存在)
LAST_SEEN_TRANSACTION char(57) NO NULL 最后看到的事务。如果gtid_mode为ON,则列值定义如下:如果没有执行任何事务,则该列为空。当事务执行时,一旦设置了gtid_next,就从gtid_next设置列。从这一刻起,列总是显示GTID。保留GTID直到执行下一个事务。如果发生错误,则列值是发生错误时由工作人员执行的事务的GTID。当下一个GTID日志事件被此工作线程拾取时,该列在gtid_next设置后不久就从gtid_next更新
LAST_ERROR_NUMBER int(11) NO NULL 导致工作线程停止的最新错误的错误号和错误消息。错误编号0和空字符串的消息意味着“无错误”。如果LAST_ERROR_MESSAGE值不为空,则错误值也会显示在从站的错误日志中。
LAST_ERROR_MESSAGE varchar(1024) NO NULL  
LAST_ERROR_TIMESTAMP timestamp NO CURRENT_TIMESTAMP YYMMDD HH:MM:SS格式中的时间戳记,显示最近发生的工作错误

实例

mysql> select * from replication_applier_status_by_worker limit 1\G;
*************************** 1. row ***************************
​         CHANNEL_NAME: 
​            WORKER_ID: 1
​            THREAD_ID: 53
​        SERVICE_STATE: ON
LAST_SEEN_TRANSACTION: d93f98a0-660a-11e7-b3a9-744aa40209ee:131
​    LAST_ERROR_NUMBER: 0
   LAST_ERROR_MESSAGE: 
 LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
1 row in set (0.00 sec)

和show slave status对应关系

replication_applier_status_by_worker Column SHOW SLAVE STATUS Column
WORKER_ID None
THREAD_ID None
SERVICE_STATE None
LAST_SEEN_TRANSACTION None
LAST_ERROR_NUMBER Last_SQL_Errno
LAST_ERROR_MESSAGE Last_SQL_Error
LAST_ERROR_TIMESTAMP Last_SQL_Error_Timestamp

replication_connection_configuration

用于连接到主机的配置参数

Field Type Null Default 备注
CHANNEL_NAME char(64) NO NULL 此行显示的复制通道
HOST char(60) NO NULL 从机连接的主机,MASTER_HOST
PORT int(11) NO NULL 端口,MASTER_PORT
USER char(32) NO NULL 复制的用户名,MASTER_USER
NETWORK_INTERFACE char(60) NO NULL 绑定到的网络接口,MASTER_BIND
AUTO_POSITION enum(‘1’,’0’) NO NULL 1如果自动定位正在使用;否则为0.MASTER_AUTO_POSITION
SSL_ALLOWED enum(‘YES’,’NO’,’IGNORED’) NO NULL SSL参数
SSL_CA_FILE varchar(512) NO NULL SSL参数
SSL_CA_PATH varchar(512) NO NULL SSL参数
SSL_CERTIFICATE varchar(512) NO NULL SSL参数
SSL_CIPHER varchar(512) NO NULL SSL参数
SSL_KEY varchar(512) NO NULL SSL参数
SSL_VERIFY_SERVER_CERTIFICATE enum(‘YES’,’NO’) NO NULL SSL参数
SSL_CRL_FILE varchar(255) NO NULL SSL参数
SSL_CRL_PATH varchar(255) NO NULL SSL参数
CONNECTION_RETRY_INTERVAL int(11) NO NULL 连接重试之间的秒数,MASTER_CONNECT_RETRY
CONNECTION_RETRY_COUNT bigint(20) unsigned NO NULL 在连接丢失的情况下,从机可以尝试重新连接到主机的次数,MASTER_RETRY_COUNT
HEARTBEAT_INTERVAL double(10,3) unsigned NO NULL 从上复制心跳间隔,以秒为单位
TLS_VERSION varchar(255) NO NULL  

实例

mysql> select * from replication_connection_configuration\G;
*************************** 1. row ***************************
​                 CHANNEL_NAME: 
​                         HOST: 192.168.1.104
​                         PORT: 15518
​                         USER: repl
​            NETWORK_INTERFACE: 
​                AUTO_POSITION: 0
​                  SSL_ALLOWED: NO
​                  SSL_CA_FILE: 
​                  SSL_CA_PATH: 
​              SSL_CERTIFICATE: 
​                   SSL_CIPHER: 
​                      SSL_KEY: 
SSL_VERIFY_SERVER_CERTIFICATE: NO
​                 SSL_CRL_FILE: 
​                 SSL_CRL_PATH: 
​    CONNECTION_RETRY_INTERVAL: 60
​       CONNECTION_RETRY_COUNT: 86400
​           HEARTBEAT_INTERVAL: 30.000
​                  TLS_VERSION: 
1 row in set (0.00 sec)

和show slave status对应关系

replication_connection_configuration SHOW SLAVE STATUS
HOST Master_Host
PORT Master_Port
USER Master_User
NETWORK_INTERFACE Master_Bind
AUTO_POSITION Auto_Position
SSL_ALLOWED Master_SSL_Allowed
SSL_CA_FILE Master_SSL_CA_File
SSL_CA_PATH Master_SSL_CA_Path
SSL_CERTIFICATE Master_SSL_Cert
SSL_CIPHER Master_SSL_Cipher
SSL_KEY Master_SSL_Key
SSL_VERIFY_SERVER_CERTIFICATE Master_SSL_Verify_Server_Cert
SSL_CRL_FILE Master_SSL_Crl
SSL_CRL_PATH Master_SSL_Crlpath
CONNECTION_RETRY_INTERVAL Connect_Retry
CONNECTION_RETRY_COUNT Master_Retry_Count

replication_connection_status

与主机的连接的当前状态

Field Type Null Default 备注
CHANNEL_NAME char(64) NO NULL 此行显示的复制通道
GROUP_NAME char(36) NO NULL 如果此服务器是组的成员,则显示服务器所属的组的名称
SOURCE_UUID char(36) NO NULL 来自master的server_uuid值
THREAD_ID bigint(20) unsigned YES NULL I / O线程ID
SERVICE_STATE enum(‘ON’,’OFF’
,’CONNECTING’)
NO NULL ON(线程存在并处于活动状态或空闲状态),OFF(线程不再存在)或CONNECTING(线程存在并正在连接到主机)
COUNT_RECEIVED_HEARTBEATS bigint(20) unsigned NO 0 从上一次重新启动或重置以来,复制从机接收到的心跳信号的总数,或发出了CHANGE MASTER TO语句
LAST_HEARTBEAT_TIMESTAMP timestamp NO CURRENT_
TIMESTAMP
YMMDD HH:MM:SS格式中的时间戳,显示复制从站接收到最近的心跳信号。
RECEIVED_TRANSACTION_SET longtext NO NULL 与该从站接收到的所有事务相对应的全局事务ID(GTID)集合。如果GTID未使用,则为空。有关详细信息,请参阅GTID集。
LAST_ERROR_NUMBER int(11) NO NULL 导致I / O线程停止的最新错误的错误号和错误消息。错误编号为0,空字符串的消息意味着“无错误”。如果LAST_ERROR_MESSAGE值不为空,则错误值也会显示在从站的错误日志中。
LAST_ERROR_MESSAGE varchar(1024) NO NULL  
LAST_ERROR_TIMESTAMP timestamp NO 0000-00-00 00:00:00 YYMMDD HH:MM:SS格式中的时间戳,显示何时发生最近的I / O错误

实例

mysql> select * from replication_connection_status\G;
*************************** 1. row ***************************
​             CHANNEL_NAME: 
​               GROUP_NAME: 
​              SOURCE_UUID: d93f98a0-660a-11e7-b3a9-744aa40209ee
​                THREAD_ID: 103
​            SERVICE_STATE: ON
COUNT_RECEIVED_HEARTBEATS: 8910
 LAST_HEARTBEAT_TIMESTAMP: 2017-09-21 17:08:29
 RECEIVED_TRANSACTION_SET: 
​        LAST_ERROR_NUMBER: 0
​       LAST_ERROR_MESSAGE: 
​     LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
1 row in set (0.00 sec)

和show slave status对应关系

replication_connection_status Column SHOW SLAVE STATUS Column
SOURCE_UUID Master_UUID
THREAD_ID None
SERVICE_STATE Slave_IO_Running
RECEIVED_TRANSACTION_SET Retrieved_Gtid_Set
LAST_ERROR_NUMBER Last_IO_Errno
LAST_ERROR_MESSAGE Last_IO_Error
LAST_ERROR_TIMESTAMP Last_IO_Error_Timestamp

replication_group_member_stats

为组成员提供网络和状态信息

Field Type Null Default 备注
CHANNEL_NAME char(64) NO NULL 通道名
VIEW_ID char(60) NO NULL 此组的当前视图标识符
MEMBER_ID char(36) NO NULL 成员标识符,uuid
COUNT_TRANSACTIONS_IN_QUEUE bigint(20) unsigned NO NULL 队列中的事务数量
COUNT_TRANSACTIONS_CHECKED bigint(20) unsigned NO NULL 已认证的事务数量
COUNT_CONFLICTS_DETECTED bigint(20) unsigned NO NULL 负面认证的事务数量
COUNT_TRANSACTIONS_ROWS_VALIDATING bigint(20) unsigned NO NULL 可用于认证但尚未被垃圾回收的可用事务数。
TRANSACTIONS_COMMITTED_ALL_MEMBERS longtext NO NULL 一组稳定的组事务
LAST_CONFLICT_FREE_TRANSACTION text NO NULL 最新事务认证没有冲突

replication_group_members

提供有关组参与者的组成员和事务的统计信息

Field Type Null Default 备注
CHANNEL_NAME char(64) NO NULL 通道名称
MEMBER_ID char(36) NO NULL 成员标识符,uuid
MEMBER_HOST char(60) NO NULL 成员地址
MEMBER_PORT int(11) YES NULL 成员端口
MEMBER_STATE char(64) NO NULL 成员状态:offline:组复制插件已安装但尚未启动。RECOVERING:服务器已加入正在检索数据的组。ONLINE:会员处于完全正常的状态。

11.Lock Tables

metadata_locks

元数据锁被保存并被请求

Field Type Null Default 备注
OBJECT_TYPE varchar(64) NO NULL 元数据锁使用的锁类型:该值是GLOBAL,SCHEMA,TABLE,FUNCTION,PROCEDURE,TRIGGER(当前未使用),EVENT,COMMIT,USER LEVEL LOCK,TABLESPACE或LOCKING SERVICE中的一种
OBJECT_SCHEMA varchar(64) YES NULL 包含对象的模式
OBJECT_NAME varchar(64) YES NULL 被检测对象的名称
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 记忆对象的地址
LOCK_TYPE varchar(32) NO NULL 元数据锁的锁类型。该值为INTENTION_EXCLUSIVE,SHARED,SHARED_HIGH_PRIO,SHARED_READ,SHARED_WRITE,SHARED_UPGRADABLE,SHARED_NO_WRITE,SHARED_NO_READ_WRITE或EXCLUSIVE之一
LOCK_DURATION varchar(32) NO NULL 来自元数据锁子系统的锁定时间。该值是STATEMENT,TRANSACTION或EXPLICIT之一。 STATEMENT和TRANSACTION值分别表示在语句或事务结束时释放的锁。 EXPLICIT值表示可以在语句或事务结束中生存并被明确释放的锁,例如使用FLUSH TABLES WITH READ LOCK获取的全局锁
LOCK_STATUS varchar(32) NO NULL 元数据锁子系统的锁定状态。该值是PENDING,GRANTED,VICTIM,TIMEOUT,KILLED,PRE_ACQUIRE_NOTIFY或POST_RELEASE_NOTIFY之一。性能模式如前所述分配这些值
SOURCE varchar(64) YES NULL 源文件的名称,其中包含产生事件的检测代码和检测到的文件中的行号。这使您可以检查源代码以确定涉及的代码
OWNER_THREAD_ID bigint(20) unsigned YES NULL 请求元数据锁的线程
OWNER_EVENT_ID bigint(20) unsigned YES NULL 请求元数据锁的事件

打开元数据锁

UPDATE setup_instruments SET ENABLED = 'YES', TIMED = 'YES' WHERE NAME = 'wait/lock/metadata/sql/mdl';

实例

mysql>  select * from metadata_locks\G;
*************************** 1. row ***************************
​          OBJECT_TYPE: TABLE
​        OBJECT_SCHEMA: performance_schema
​          OBJECT_NAME: metadata_locks
OBJECT_INSTANCE_BEGIN: 380052496
​            LOCK_TYPE: SHARED_READ
​        LOCK_DURATION: TRANSACTION
​          LOCK_STATUS: GRANTED
​               SOURCE: sql_parse.cc:6038
​      OWNER_THREAD_ID: 274
​       OWNER_EVENT_ID: 5024
1 row in set (0.00 sec)

锁类型

目前MDL有如下锁模式,锁之间的兼容性可见源码mdl.cc:

锁模式 对应SQL
MDL_INTENTION_EXCLUSIVE GLOBAL对象、SCHEMA对象操作会加此锁
MDL_SHARED FLUSH TABLES with READ LOCK
MDL_SHARED_HIGH_PRIO 仅对MyISAM存储引擎有效
MDL_SHARED_READ SELECT查询
MDL_SHARED_WRITE DML语句
MDL_SHARED_WRITE_LOW_PRIO 仅对MyISAM存储引擎有效
MDL_SHARED_UPGRADABLE ALTER TABLE
MDL_SHARED_READ_ONLY LOCK xxx READ
MDL_SHARED_NO_WRITE FLUSH TABLES xxx,yyy,zzz READ
MDL_SHARED_NO_READ_WRITE FLUSH TABLE xxx WRITE
MDL_EXCLUSIVE ALTER TABLE xxx PARTITION BY …

关于lock_status

  1. 当请求并立即获取元数据锁时,将插入状态为GRANTED的行。

  2. 当请求元数据锁并且不立即获取时,将插入状态为PENDING的行。

  3. 当先前请求的元数据锁被授予时,其行状态更新为GRANTED。

  4. 当元数据锁被释放时,它的行被删除。

  5. 当死锁检测器取消挂起的锁定请求以打破死锁(ER_LOCK_DEADLOCK)时,其行状态将从PENDING更新为VICTIM。

  6. 当待处理的锁定请求超时(ER_LOCK_WAIT_TIMEOUT)时,其行状态将从PENDING更新为TIMEOUT。

  7. 当授予锁定或挂起的锁定请求被杀死时,其行状态从GRANTED或PENDING更新为KILLED。

    VICTIM,TIMEOUT和KILLED状态值很简短,表示锁行即将被删除。

table_handles

表锁被保存并被请求

Field Type Null Default 备注
OBJECT_TYPE varchar(64) NO NULL  
OBJECT_SCHEMA varchar(64) NO NULL 库名
OBJECT_NAME varchar(64) NO NULL 表名
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 内存中的表句柄地址
OWNER_THREAD_ID bigint(20) unsigned YES NULL 线程拥有表句柄
OWNER_EVENT_ID bigint(20) unsigned YES NULL 引起表句柄打开的事件
INTERNAL_LOCK varchar(64) YES NULL 在SQL级使用的表锁。该值是READ,READ WITH SHARED LOCKS,READ HIGH PRIORITY,READ NO INSERT,WRITE ALLOW WRITE,WRITE CONCURRENT INSERT,WRITE LOW PRIORITY或WRITE。有关这些锁类型的信息,请参阅include / thr_lock.h源文件
EXTERNAL_LOCK varchar(64) YES NULL 在存储引擎级使用的表锁。该值是READ EXTERNAL或WRITE EXTERNAL之一

实例

mysql> lock tables test read;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from table_handles where object_name='test'\G;
*************************** 7. row ***************************
​          OBJECT_TYPE: TABLE
​        OBJECT_SCHEMA: lt
​          OBJECT_NAME: test
OBJECT_INSTANCE_BEGIN: 367946800
​      OWNER_THREAD_ID: 275
​       OWNER_EVENT_ID: 2541
​        INTERNAL_LOCK: NULL
​        EXTERNAL_LOCK: READ EXTERNAL

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

12.System Variable Tables

global_variables

全局系统变量。只需要全局值的应用程序应该使用此表。

Field Type Null Default 备注
VARIABLE_NAME varchar(64) NO NULL 系统变量名
VARIABLE_VALUE varchar(1024) YES NULL 系统变量值

session_variables

当前会话的系统变量。希望自己会话的所有系统变量值的应用程序应该使用此表,它包括其会话的会话变量,以及没有会话对应的全局变量的值。

Field Type Null Default 备注
VARIABLE_NAME varchar(64) NO NULL 系统变量名
VARIABLE_VALUE varchar(1024) YES NULL 系统变量值

variables_by_thread

每个活动会话的会话系统变量,想要了解特定会话的会话变量值的应用程序应该使用此表。它仅包含会话变量,由线程ID标识。

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL 定义系统变量的会话的线程标识符
VARIABLE_NAME varchar(64) NO NULL 系统变量名
VARIABLE_VALUE varchar(1024) YES NULL 由THREAD_ID列命名的会话的会话变量值

13.Summary Tables

Wait Event Summaries

events_waits_summary_by_account_by_event_name

每个帐户等待事件和事件名称

Field Type Null Default 备注
USER char(32) YES NULL 用户
HOST char(60) YES NULL 主机
EVENT_NAME varchar(128) NO NULL 事件名称
COUNT_STAR bigint(20) unsigned NO NULL 总结事件的数量。此值包括所有事件,无论是定时还是非限制
SUM_TIMER_WAIT bigint(20) unsigned NO NULL 总计等待时间的总计时间事件。此值仅针对定时事件计算,因为非活动事件的等待时间为NULL。对于其他xxx_TIMER_WAIT值也是如此
MIN_TIMER_WAIT bigint(20) unsigned NO NULL 总结定时事件的最短等待时间
AVG_TIMER_WAIT bigint(20) unsigned NO NULL 总结定时事件的平均等待时间
MAX_TIMER_WAIT bigint(20) unsigned NO NULL 总结定时事件的最长等待时间

events_waits_summary_by_host_by_event_name

等待每个主机名和事件名称的事件

Field Type Null Default 备注
HOST char(60) YES NULL 主机
EVENT_NAME varchar(128) NO NULL 事件名称
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  

events_waits_summary_by_instance

每个实例等待事件

Field Type Null Default 备注
EVENT_NAME varchar(128) NO NULL 事件名称
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 内存地址
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  

events_waits_summary_by_thread_by_event_name

每个线程等待事件和事件名称

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL 线程id
EVENT_NAME varchar(128) NO NULL 事件名称
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  

events_waits_summary_by_user_by_event_name

每个用户名和事件名称等待事件

Field Type Null Default 备注
USER char(32) YES NULL 用户
EVENT_NAME varchar(128) NO NULL 事件名称
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  

events_waits_summary_global_by_event_name

每个事件名称等待事件

Field Type Null Default 备注
EVENT_NAME varchar(128) NO NULL 事件名称
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
实例:列出Top N 个 class等待event by latency

能解决什么问题:站在更高的角度来衡量,主要是table的io,文件的io,表的lock的wait事件延迟。

SELECT SUBSTRING_INDEX(event_name,'/', 3) AS event_class,
       SUM(COUNT_STAR) AS total,
       sys.format_time(SUM(sum_timer_wait)) AS total_latency,
       sys.format_time(MIN(min_timer_wait)) min_latency,
       sys.format_time(IFNULL(SUM(sum_timer_wait) / NULLIF(SUM(COUNT_STAR), 0), 0)) AS avg_latency,
       sys.format_time(MAX(max_timer_wait)) AS max_latency
  FROM performance_schema.events_waits_summary_global_by_event_name
 WHERE sum_timer_wait > 0
   AND event_name != 'idle'
 GROUP BY SUBSTRING_INDEX(event_name,'/', 3)
 ORDER BY SUM(sum_timer_wait) DESC;
+-------------------+-----------+---------------+-------------+-------------+-------------+
| event_class       | total     | total_latency | min_latency | avg_latency | max_latency |
+-------------------+-----------+---------------+-------------+-------------+-------------+
| wait/io/table     | 730785513 | 14.18 h       | 704.70 ns   | 69.84 us    | 51.03 s     |
| wait/synch/cond   |   1063712 | 5.83 h        | 1.46 us     | 19.72 ms    | 5.08 s      |
| wait/synch/sxlock | 126045676 | 2.99 h        | 46.98 ns    | 85.36 us    | 511.15 ms   |
| wait/synch/mutex  | 482116669 | 2.99 h        | 24.36 ns    | 22.31 us    | 911.73 ms   |
| wait/io/file      |   9874913 | 29.96 m       | 0 ps        | 182.05 us   | 1.06 s      |
| wait/io/socket    |  35572378 | 13.38 m       | 0 ps        | 22.57 us    | 134.82 ms   |
| wait/lock/table   |  31248958 | 1.37 m        | 267.96 ns   | 2.63 us     | 5.28 ms     |
| wait/synch/rwlock |  22496810 | 4.30 s        | 40.02 ns    | 190.94 ns   | 4.90 ms     |
+-------------------+-----------+---------------+-------------+-------------+-------------+
8 rows in set (0.02 sec)

Stage Summaries

events_stages_summary_by_account_by_event_name

表结构同events_waits_summary_by_account_by_event_name

events_stages_summary_by_host_by_event_name

表结构同events_waits_summary_by_host_by_event_name

events_stages_summary_by_thread_by_event_name

表结构同events_waits_summary_by_thread_by_event_name

events_stages_summary_by_user_by_event_name

表结构同events_waits_summary_by_user_by_event_name

events_stages_summary_global_by_event_name

表结构同events_waits_summary_global_by_event_name

Statement Summaries

(重要)events_statements_summary_by_digest

Field Type Null Default 备注
SCHEMA_NAME varchar(64) YES NULL 库名
DIGEST varchar(32) YES NULL 对SQL_TEXT做MD5产生的32位字符串
DIGEST_TEXT longtext YES NULL 将语句中值部分用问号代替,用于SQL语句归类
COUNT_STAR bigint(20) unsigned NO NULL 总结事件的数量。此值包括所有事件,无论是定时还是非限制
SUM_TIMER_WAIT bigint(20) unsigned NO NULL 总计等待时间的总计时间事件。此值仅针对定时事件计算,因为非活动事件的等待时间为NULL。对于其他xxx_TIMER_WAIT值也是如此
MIN_TIMER_WAIT bigint(20) unsigned NO NULL 总结定时事件的最短等待时间
AVG_TIMER_WAIT bigint(20) unsigned NO NULL 总结定时事件的平均等待时间
MAX_TIMER_WAIT bigint(20) unsigned NO NULL 总结定时事件的最长等待时间
SUM_LOCK_TIME bigint(20) unsigned NO NULL 在events_statements_current表中相应的LOCK_TIME列的聚合。
SUM_ERRORS bigint(20) unsigned NO NULL 在events_statements_current表中相应的errors列的聚合。
SUM_WARNINGS bigint(20) unsigned NO NULL 在events_statements_current表中相应的WARNINGS列的聚合。
SUM_ROWS_AFFECTED bigint(20) unsigned NO NULL 在events_statements_current表中相应的ROWS_AFFECTED列的聚合。
SUM_ROWS_SENT bigint(20) unsigned NO NULL 在events_statements_current表中相应的ROWS_SENT列的聚合。
SUM_ROWS_EXAMINED bigint(20) unsigned NO NULL 在events_statements_current表中相应的ROWS_EXAMINED列的聚合。
SUM_CREATED_TMP_DISK_TABLES bigint(20) unsigned NO NULL 在events_statements_current表中相应的CREATED_TMP_DISK_TABLES列的聚合。
SUM_CREATED_TMP_TABLES bigint(20) unsigned NO NULL 在events_statements_current表中相应的CREATED_TMP_TABLES列的聚合。
SUM_SELECT_FULL_JOIN bigint(20) unsigned NO NULL 在events_statements_current表中相应的SELECT_FULL_JOIN列的聚合。
SUM_SELECT_FULL_RANGE_JOIN bigint(20) unsigned NO NULL 在events_statements_current表中相应的SELECT_FULL_RANGE_JOIN列的聚合。
SUM_SELECT_RANGE bigint(20) unsigned NO NULL 在events_statements_current表中相应的SELECT_RANGE列的聚合。
SUM_SELECT_RANGE_CHECK bigint(20) unsigned NO NULL 在events_statements_current表中相应的SELECT_RANGE_CHECK列的聚合。
SUM_SELECT_SCAN bigint(20) unsigned NO NULL 在events_statements_current表中相应的SELECT_SCAN列的聚合。
SUM_SORT_MERGE_PASSES bigint(20) unsigned NO NULL 在events_statements_current表中相应的SORT_MERGE_PASSES列的聚合。
SUM_SORT_RANGE bigint(20) unsigned NO NULL 在events_statements_current表中相应的SORT_RANGE列的聚合。
SUM_SORT_ROWS bigint(20) unsigned NO NULL 在events_statements_current表中相应的SORT_ROWS列的聚合。
SUM_SORT_SCAN bigint(20) unsigned NO NULL 在events_statements_current表中相应的SORT_SCAN列的聚合。
SUM_NO_INDEX_USED bigint(20) unsigned NO NULL 在events_statements_current表中相应的NO_INDEX_USED列的聚合。
SUM_NO_GOOD_INDEX_USED bigint(20) unsigned NO NULL 在events_statements_current表中相应的NO_GOOD_INDEX_USED列的聚合。
FIRST_SEEN timestamp NO 0000-00-00 00:00:00 首次看到的具有给定摘要值的报表
LAST_SEEN timestamp NO 0000-00-00 00:00:00 最近看到的具有给定摘要值的报表
使用说明

(1).哪类SQL执行最多?

可以看到执行次数最多的?

COUNT_STAR,FIRST_SEEN和LAST_SEEN分别显示了语句第一次执行和最后一次执行的时间点。

(2).哪类SQL的平均响应时间最多?

AVG_TIMER_WAIT

(3).哪类SQL排序记录数最多?

SUM_SORT_ROWS

(4).哪类SQL扫描记录数最多?

SUM_ROWS_EXAMINED

(5).哪类SQL使用临时表最多?

SUM_CREATED_TMP_TABLES,SUM_CREATED_TMP_DISK_TABLES

(6).哪类SQL返回结果集最多?

SUM_ROWS_SENT

(7).找出有error 或者 warning 的 SQL

SUM_ERRORS,SUM_WARNINGS

(8).找出全表扫描的SQL

SUM_NO_INDEX_USED,SUM_NO_GOOD_INDEX_USED

通过上述指标我们可以间接获得某类SQL的逻辑IO(SUM_ROWS_EXAMINED),CPU消耗(SUM_SORT_ROWS),网络带宽(SUM_ROWS_SENT)的对比,但还无法得到某类SQL的物理IO消耗,以及某类SQL访问数据的buffer命中率。

SQL维度统计信息使用实例

1.列出top N 个SQL的详细情况,以latency降序排列

SELECT sys.format_statement(DIGEST_TEXT) AS query,
        SCHEMA_NAME AS db,
        IF(SUM_NO_GOOD_INDEX_USED > 0 OR SUM_NO_INDEX_USED > 0, '*', '') AS full_scan,
        COUNT_STAR AS exec_count,
        SUM_ERRORS AS err_count,
        SUM_WARNINGS AS warn_count,
        sys.format_time(SUM_TIMER_WAIT) AS total_latency,
        sys.format_time(MAX_TIMER_WAIT) AS max_latency,
        sys.format_time(AVG_TIMER_WAIT) AS avg_latency,
        sys.format_time(SUM_LOCK_TIME) AS lock_latency,
        SUM_ROWS_SENT AS rows_sent,
        ROUND(IFNULL(SUM_ROWS_SENT / NULLIF(COUNT_STAR, 0), 0)) AS rows_sent_avg,
        SUM_ROWS_EXAMINED AS rows_examined,
        ROUND(IFNULL(SUM_ROWS_EXAMINED / NULLIF(COUNT_STAR, 0), 0))  AS rows_examined_avg,
        SUM_CREATED_TMP_TABLES AS tmp_tables,
        SUM_CREATED_TMP_DISK_TABLES AS tmp_disk_tables,
        SUM_SORT_ROWS AS rows_sorted,
        SUM_SORT_MERGE_PASSES AS sort_merge_passes,
        DIGEST AS digest,
        FIRST_SEEN AS first_seen,
        LAST_SEEN as last_seen
   FROM performance_schema.events_statements_summary_by_digest
 ORDER BY SUM_TIMER_WAIT DESC limit 10;
*************************** 2. row ***************************
            query: UPDATE `sbtest1` SET `k` = `k` + ? WHERE `id` = ? 
               db: lt
        full_scan: 
       exec_count: 1734843 --SQL执行的总次数
        err_count: 0 --SQL执行失败的总次数
       warn_count: 0 
    total_latency: 8.23 h  --总延时
      max_latency: 922.08 ms
      avg_latency: 17.07 ms
     lock_latency: 5.62 m
        rows_sent: 0
    rows_sent_avg: 0
    rows_examined: 1735053
rows_examined_avg: 1
       tmp_tables: 0
  tmp_disk_tables: 0
      rows_sorted: 0
sort_merge_passes: 0
           digest: b301230939993a6f01020a8bc9cb16c3
       first_seen: 2017-09-19 11:49:46
        last_seen: 2017-09-19 14:13:05
2 rows in set (0.00 sec)

实例2:找出排序延迟对多的SQL

SELECT sys.format_statement(DIGEST_TEXT) AS query,
        SCHEMA_NAME db,
        COUNT_STAR AS exec_count,
        sys.format_time(SUM_TIMER_WAIT) AS total_latency,
        SUM_SORT_MERGE_PASSES AS sort_merge_passes,
        SUM_SORT_SCAN AS sorts_using_scans,
        SUM_SORT_RANGE AS sort_using_range,
        SUM_SORT_ROWS AS rows_sorted,
        FIRST_SEEN as first_seen,
        LAST_SEEN as last_seen,
        DIGEST AS digest
   FROM performance_schema.events_statements_summary_by_digest
  WHERE SUM_SORT_ROWS > 0 and SCHEMA_NAME not in ('mysql','sys')
  ORDER BY SUM_TIMER_WAIT DESC;
+-------------------------------------------------------------------+------+------------+---------------+-------------------+-------------------+------------------+-------------+---------------------+---------------------+----------------------------------+

| query                                                             | db   | exec_count | total_latency | sort_merge_passes | sorts_using_scans | sort_using_range | rows_sorted | first_seen          | last_seen           | digest                           |

+-------------------------------------------------------------------+------+------------+---------------+-------------------+-------------------+------------------+-------------+---------------------+---------------------+----------------------------------+

| SELECT DISTINCTROW `c` FROM `s ...  BETWEEN ? AND ? ORDER BY `c`  | lt   |    1735356 | 4.35 h        |                 0 |           1735448 |                0 |   173541400 | 2017-09-19 11:49:46 | 2017-09-19 14:13:05 | 23fee108669d316718c9b5c78d7b9f73 |

| SELECT `c` FROM `sbtest1` WHER ...  BETWEEN ? AND ? ORDER BY `c`  | lt   |    1735595 | 1.90 h        |                 0 |                 0 |          1735691 |   173568300 | 2017-09-19 11:49:46 | 2017-09-19 14:13:05 | 4c5fc311dca5c840c9d8267ffbbb5d7e |

+-------------------------------------------------------------------+------+------------+---------------+-------------------+-------------------+------------------+-------------+---------------------+---------------------+----------------------------------+ 

events_statements_summary_by_program

Field Type Null Default 备注
OBJECT_TYPE enum(‘EVENT’,’FUNCTION’,’PROCEDURE’,’TABLE’,’TRIGGER’) YES NULL  
OBJECT_SCHEMA varchar(64) NO NULL  
OBJECT_NAME varchar(64) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_STATEMENTS bigint(20) unsigned NO NULL  
SUM_STATEMENTS_WAIT bigint(20) unsigned NO NULL  
MIN_STATEMENTS_WAIT bigint(20) unsigned NO NULL  
AVG_STATEMENTS_WAIT bigint(20) unsigned NO NULL  
MAX_STATEMENTS_WAIT bigint(20) unsigned NO NULL  
SUM_LOCK_TIME bigint(20) unsigned NO NULL  
SUM_ERRORS bigint(20) unsigned NO NULL  
SUM_WARNINGS bigint(20) unsigned NO NULL  
SUM_ROWS_AFFECTED bigint(20) unsigned NO NULL  
SUM_ROWS_SENT bigint(20) unsigned NO NULL  
SUM_ROWS_EXAMINED bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_DISK_TABLES bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_TABLES bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_RANGE_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE_CHECK bigint(20) unsigned NO NULL  
SUM_SELECT_SCAN bigint(20) unsigned NO NULL  
SUM_SORT_MERGE_PASSES bigint(20) unsigned NO NULL  
SUM_SORT_RANGE bigint(20) unsigned NO NULL  
SUM_SORT_ROWS bigint(20) unsigned NO NULL  
SUM_SORT_SCAN bigint(20) unsigned NO NULL  
SUM_NO_INDEX_USED bigint(20) unsigned NO NULL  
SUM_NO_GOOD_INDEX_USED bigint(20) unsigned NO NULL  

events_statements_summary_by_account_by_event_name

Field Type Null Default 备注
USER char(32) YES NULL  
HOST char(60) YES NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
SUM_LOCK_TIME bigint(20) unsigned NO NULL  
SUM_ERRORS bigint(20) unsigned NO NULL  
SUM_WARNINGS bigint(20) unsigned NO NULL  
SUM_ROWS_AFFECTED bigint(20) unsigned NO NULL  
SUM_ROWS_SENT bigint(20) unsigned NO NULL  
SUM_ROWS_EXAMINED bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_DISK_TABLES bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_TABLES bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_RANGE_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE_CHECK bigint(20) unsigned NO NULL  
SUM_SELECT_SCAN bigint(20) unsigned NO NULL  
SUM_SORT_MERGE_PASSES bigint(20) unsigned NO NULL  
SUM_SORT_RANGE bigint(20) unsigned NO NULL  
SUM_SORT_ROWS bigint(20) unsigned NO NULL  
SUM_SORT_SCAN bigint(20) unsigned NO NULL  
SUM_NO_INDEX_USED bigint(20) unsigned NO NULL  
SUM_NO_GOOD_INDEX_USED bigint(20) unsigned NO NULL  

events_statements_summary_by_host_by_event_name

Field Type Null Default 备注
HOST char(60) YES NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
SUM_LOCK_TIME bigint(20) unsigned NO NULL  
SUM_ERRORS bigint(20) unsigned NO NULL  
SUM_WARNINGS bigint(20) unsigned NO NULL  
SUM_ROWS_AFFECTED bigint(20) unsigned NO NULL  
SUM_ROWS_SENT bigint(20) unsigned NO NULL  
SUM_ROWS_EXAMINED bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_DISK_TABLES bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_TABLES bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_RANGE_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE_CHECK bigint(20) unsigned NO NULL  
SUM_SELECT_SCAN bigint(20) unsigned NO NULL  
SUM_SORT_MERGE_PASSES bigint(20) unsigned NO NULL  
SUM_SORT_RANGE bigint(20) unsigned NO NULL  
SUM_SORT_ROWS bigint(20) unsigned NO NULL  
SUM_SORT_SCAN bigint(20) unsigned NO NULL  
SUM_NO_INDEX_USED bigint(20) unsigned NO NULL  
SUM_NO_GOOD_INDEX_USED bigint(20) unsigned NO NULL  

events_statements_summary_by_thread_by_event_name

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
SUM_LOCK_TIME bigint(20) unsigned NO NULL  
SUM_ERRORS bigint(20) unsigned NO NULL  
SUM_WARNINGS bigint(20) unsigned NO NULL  
SUM_ROWS_AFFECTED bigint(20) unsigned NO NULL  
SUM_ROWS_SENT bigint(20) unsigned NO NULL  
SUM_ROWS_EXAMINED bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_DISK_TABLES bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_TABLES bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_RANGE_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE_CHECK bigint(20) unsigned NO NULL  
SUM_SELECT_SCAN bigint(20) unsigned NO NULL  
SUM_SORT_MERGE_PASSES bigint(20) unsigned NO NULL  
SUM_SORT_RANGE bigint(20) unsigned NO NULL  
SUM_SORT_ROWS bigint(20) unsigned NO NULL  
SUM_SORT_SCAN bigint(20) unsigned NO NULL  
SUM_NO_INDEX_USED bigint(20) unsigned NO NULL  
SUM_NO_GOOD_INDEX_USED bigint(20) unsigned NO NULL  

events_statements_summary_by_user_by_event_name

Field Type Null Default 备注
USER char(32) YES NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
SUM_LOCK_TIME bigint(20) unsigned NO NULL  
SUM_ERRORS bigint(20) unsigned NO NULL  
SUM_WARNINGS bigint(20) unsigned NO NULL  
SUM_ROWS_AFFECTED bigint(20) unsigned NO NULL  
SUM_ROWS_SENT bigint(20) unsigned NO NULL  
SUM_ROWS_EXAMINED bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_DISK_TABLES bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_TABLES bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_RANGE_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE_CHECK bigint(20) unsigned NO NULL  
SUM_SELECT_SCAN bigint(20) unsigned NO NULL  
SUM_SORT_MERGE_PASSES bigint(20) unsigned NO NULL  
SUM_SORT_RANGE bigint(20) unsigned NO NULL  
SUM_SORT_ROWS bigint(20) unsigned NO NULL  
SUM_SORT_SCAN bigint(20) unsigned NO NULL  
SUM_NO_INDEX_USED bigint(20) unsigned NO NULL  
SUM_NO_GOOD_INDEX_USED bigint(20) unsigned NO NULL  

events_statements_summary_global_by_event_name

Field Type Null Default 备注
EVENT_NAME varchar(128) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
SUM_LOCK_TIME bigint(20) unsigned NO NULL  
SUM_ERRORS bigint(20) unsigned NO NULL  
SUM_WARNINGS bigint(20) unsigned NO NULL  
SUM_ROWS_AFFECTED bigint(20) unsigned NO NULL  
SUM_ROWS_SENT bigint(20) unsigned NO NULL  
SUM_ROWS_EXAMINED bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_DISK_TABLES bigint(20) unsigned NO NULL  
SUM_CREATED_TMP_TABLES bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_FULL_RANGE_JOIN bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE bigint(20) unsigned NO NULL  
SUM_SELECT_RANGE_CHECK bigint(20) unsigned NO NULL  
SUM_SELECT_SCAN bigint(20) unsigned NO NULL  
SUM_SORT_MERGE_PASSES bigint(20) unsigned NO NULL  
SUM_SORT_RANGE bigint(20) unsigned NO NULL  
SUM_SORT_ROWS bigint(20) unsigned NO NULL  
SUM_SORT_SCAN bigint(20) unsigned NO NULL  
SUM_NO_INDEX_USED bigint(20) unsigned NO NULL  
SUM_NO_GOOD_INDEX_USED bigint(20) unsigned NO NULL  

Transaction Summaries

events_transactions_summary_by_account_by_event_name

Field Type Null Default 备注
USER char(32) YES NULL  
HOST char(60) YES NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ_WRITE bigint(20) unsigned NO NULL  
SUM_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
COUNT_READ_ONLY bigint(20) unsigned NO NULL  
SUM_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
MIN_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
AVG_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
MAX_TIMER_READ_ONLY bigint(20) unsigned NO NULL  

events_transactions_summary_by_host_by_event_name

Field Type Null Default 备注
HOST char(60) YES NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ_WRITE bigint(20) unsigned NO NULL  
SUM_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
COUNT_READ_ONLY bigint(20) unsigned NO NULL  
SUM_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
MIN_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
AVG_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
MAX_TIMER_READ_ONLY bigint(20) unsigned NO NULL  

events_transactions_summary_by_thread_by_event_name

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ_WRITE bigint(20) unsigned NO NULL  
SUM_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
COUNT_READ_ONLY bigint(20) unsigned NO NULL  
SUM_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
MIN_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
AVG_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
MAX_TIMER_READ_ONLY bigint(20) unsigned NO NULL  

events_transactions_summary_by_user_by_event_name

Field Type Null Default 备注
USER char(32) YES NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ_WRITE bigint(20) unsigned NO NULL  
SUM_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
COUNT_READ_ONLY bigint(20) unsigned NO NULL  
SUM_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
MIN_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
AVG_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
MAX_TIMER_READ_ONLY bigint(20) unsigned NO NULL  

events_transactions_summary_global_by_event_name

Field Type Null Default 备注
EVENT_NAME varchar(128) NO NULL  
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ_WRITE bigint(20) unsigned NO NULL  
SUM_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_READ_WRITE bigint(20) unsigned NO NULL  
COUNT_READ_ONLY bigint(20) unsigned NO NULL  
SUM_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
MIN_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
AVG_TIMER_READ_ONLY bigint(20) unsigned NO NULL  
MAX_TIMER_READ_ONLY bigint(20) unsigned NO NULL  

Object Wait Summaries

objects_summary_global_by_type

对象摘要

Field Type Null Default 备注
OBJECT_TYPE varchar(64) YES NULL  
OBJECT_SCHEMA varchar(64) YES NULL  
OBJECT_NAME varchar(64) YES NULL  
COUNT_STAR bigint(20) unsigned NO NULL 总结事件的数量。此值包括所有事件,无论是定时还是非限制
SUM_TIMER_WAIT bigint(20) unsigned NO NULL 总计等待时间的总计时间事件。此值仅针对定时事件计算,因为非活动事件的等待时间为NULL。对于其他xxx_TIMER_WAIT值也是如此
MIN_TIMER_WAIT bigint(20) unsigned NO NULL 总结定时事件的最短等待时间
AVG_TIMER_WAIT bigint(20) unsigned NO NULL 总结定时事件的平均等待时间
MAX_TIMER_WAIT bigint(20) unsigned NO NULL 总结定时事件的最长等待时间
使用说明

能解决什么问题:

  1. 从table的角度来衡量DB的压力。
  2. 和file_summary_by_instance类似,file_summary_by_instance考虑的是文件,是物理IO。而objects_summary_global_by_type更多的是上层的压力分布。
  3. 除了能解决file_summary_by_instance的问题外,还可以发现并发的问题。比如:如果这里table的total很低,但是total_latency 很高,这就能很好的说明,80%是由于这个file的并发访问造成的high latency
  4. 它还能做一件非常niubility的事情,那就是查看哪些表已经不被使用,已经下线了。其实很多开发也会问哪些表不被使用了,这下就可以派上用场了。好处:a)优化业务 b)减少磁盘空间。 c)减少备份的压力。
mysql>  SELECT object_schema AS table_schema, 
    ->              object_name AS table_name,
    ->              count_star AS total,
    ->              sys.format_time(sum_timer_wait) as total_latency,
    ->              sys.format_time(sum_timer_wait / count_star) as avg_latency,
    ->              sys.format_time(max_timer_wait) as max_latency
    ->   FROM performance_schema.objects_summary_global_by_type
    ->        ORDER BY sum_timer_wait DESC limit 10;
+--------------+---------------+-----------+---------------+-------------+-------------+
| table_schema | table_name    | total     | total_latency | avg_latency | max_latency |
+--------------+---------------+-----------+---------------+-------------+-------------+
| lt           | sbtest1       | 762034158 | 14.16 h       | 66.91 us    | 922.13 ms   |
| lt           | test          |       258 | 2.27 m        | 528.48 ms   | 51.03 s     |
| sys          | format_path   |       749 | 279.48 ms     | 373.13 us   | 587.36 us   |
| sys          | format_bytes  |      6072 | 54.96 ms      | 9.05 us     | 62.73 us    |
| lt           | apsm          |        43 | 18.10 ms      | 420.83 us   | 17.86 ms    |
| sys          | format_time   |       450 | 4.08 ms       | 9.06 us     | 39.30 us    |
| mysql        | gtid_executed |         0 | 0 ps          | NULL        | 0 ps        |
| mysql        | server_cost   |         0 | 0 ps          | NULL        | 0 ps        |
| mysql        | user          |         0 | 0 ps          | NULL        | 0 ps        |
| mysql        | db            |         0 | 0 ps          | NULL        | 0 ps        |
+--------------+---------------+-----------+---------------+-------------+-------------+
10 rows in set (0.01 sec)

File I/O Summaries

file_summary_by_event_name

Field Type Null Default 备注
EVENT_NAME varchar(128) NO NULL 给定事件名称
COUNT_STAR bigint(20) unsigned NO NULL 这些列聚合所有I / O操作,含义同上
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ bigint(20) unsigned NO NULL 这些列聚合所有读取操作,包括FGETS,FGETC,FREAD和READ
SUM_TIMER_READ bigint(20) unsigned NO NULL  
MIN_TIMER_READ bigint(20) unsigned NO NULL  
AVG_TIMER_READ bigint(20) unsigned NO NULL  
MAX_TIMER_READ bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_READ bigint(20) NO NULL  
COUNT_WRITE bigint(20) unsigned NO NULL 这些列汇总了所有写入操作,包括FPUTS,FPUTC,FPRINTF,VFPRINTF,FWRITE和PWRITE
SUM_TIMER_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_WRITE bigint(20) NO NULL  
COUNT_MISC bigint(20) unsigned NO NULL 这些列汇总了所有其他I / O操作,包括CREATE,DELETE,OPEN,CLOSE,STREAM_OPEN,STREAM_CLOSE,SEEK,TELL,FLUSH,STAT,FSTAT,CHSIZE,RENAME和SYNC。这些操作没有字节计数。
SUM_TIMER_MISC bigint(20) unsigned NO NULL  
MIN_TIMER_MISC bigint(20) unsigned NO NULL  
AVG_TIMER_MISC bigint(20) unsigned NO NULL  
MAX_TIMER_MISC bigint(20) unsigned NO NULL  
使用说明

统计每个事件的IO使用率,单位bytes,counts。 Top Waits By bytes,能解决什么问题?

  1. 专注的不再只是文件一个点,包括服务器层和引擎层。
  2. 如果relaylog非常大,说明同步有问题。
  3. 如果binlog比较大,说明binlog有问题。
  4. 如果sql/FRM 比较大,Tune table_open_cache / table_definition_cache
  5. 如果sql/file_parse比较大,如果在5.5比较高,那就升级mysql到5.6
  6. 如果query_log比较大,那就disable genery log
  7. 如果slow log比较大,那就调整slow阈值。
  8. 还有很多值得挖掘~~
mysql> SELECT SUBSTRING_INDEX(event_name, '/', -2) event_name,
    ->        count_star AS total,
    ->        sys.format_time(sum_timer_wait) AS total_latency,
    ->        count_read,
    ->        sys.format_bytes(sum_number_of_bytes_read) AS total_read,
    ->        count_write,
    ->        sys.format_bytes(sum_number_of_bytes_write) AS total_written,
    ->        sys.format_bytes(sum_number_of_bytes_write + sum_number_of_bytes_read) AS total_requested
    ->   FROM performance_schema.file_summary_by_event_name
    ->  WHERE event_name LIKE 'wait/io/file/%'
    ->    AND count_star > 0
    ->  ORDER BY sum_number_of_bytes_write + sum_number_of_bytes_read DESC limit 10;
+-------------------------+---------+---------------+------------+------------+-------------+---------------+-----------------+
| event_name              | total   | total_latency | count_read | total_read | count_write | total_written | total_requested |
+-------------------------+---------+---------------+------------+------------+-------------+---------------+-----------------+
| innodb/innodb_data_file | 6181102 | 15.64 m       |    4151635 | 63.33 GiB  |     1893218 | 57.37 GiB     | 120.71 GiB      |
| innodb/innodb_log_file  | 2090529 | 7.39 m        |          8 | 132.50 KiB |     1045255 | 10.43 GiB     | 10.43 GiB       |
| sql/binlog              | 1522702 | 6.88 m        |       1292 | 10.04 MiB  |     1396550 | 4.62 GiB      | 4.63 GiB        |
| sql/io_cache            |   67614 | 1.58 s        |          0 | 0 bytes    |       63407 | 1.92 GiB      | 1.92 GiB        |
| innodb/innodb_temp_file |    1380 | 416.42 ms     |        688 | 688.00 MiB |         688 | 688.00 MiB    | 1.34 GiB        |
| sql/binlog_index        |    7662 | 489.73 ms     |       1103 | 2.83 MiB   |           0 | 0 bytes       | 2.83 MiB        |
| sql/FRM                 |    3631 | 216.27 ms     |       1453 | 695.27 KiB |         509 | 96.54 KiB     | 791.81 KiB      |
| sql/ERRMSG              |       5 | 7.12 ms       |          3 | 74.51 KiB  |           0 | 0 bytes       | 74.51 KiB       |
| mysys/charset           |       3 | 7.02 ms       |          1 | 18.27 KiB  |           0 | 0 bytes       | 18.27 KiB       |
| myisam/dfile            |      38 | 19.98 ms      |         12 | 15.99 KiB  |           0 | 0 bytes       | 15.99 KiB       |
+-------------------------+---------+---------------+------------+------------+-------------+---------------+-----------------+
10 rows in set (0.00 sec)

同样,也可以通过延时的维度进行统计

file_summary_by_instance

Field Type Null Default 备注
FILE_NAME varchar(512) NO NULL 文件名
EVENT_NAME varchar(128) NO NULL 事件名
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 内存地址
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ bigint(20) unsigned NO NULL  
SUM_TIMER_READ bigint(20) unsigned NO NULL  
MIN_TIMER_READ bigint(20) unsigned NO NULL  
AVG_TIMER_READ bigint(20) unsigned NO NULL  
MAX_TIMER_READ bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_READ bigint(20) NO NULL  
COUNT_WRITE bigint(20) unsigned NO NULL  
SUM_TIMER_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_WRITE bigint(20) NO NULL  
COUNT_MISC bigint(20) unsigned NO NULL  
SUM_TIMER_MISC bigint(20) unsigned NO NULL  
MIN_TIMER_MISC bigint(20) unsigned NO NULL  
AVG_TIMER_MISC bigint(20) unsigned NO NULL  
MAX_TIMER_MISC bigint(20) unsigned NO NULL  
使用说明

IO 相关,文件相关的延迟 , 事件相关的延迟, FILE IO, 使用说明: 统计每个文件的IO使用率, 比如读写次数,读写bytes,能解决什么问题?

  1. 可以清楚的知道那个文件是被访问的最频繁,压力最大,延迟最多的文件。
  2. 可以实时监控redo log,undo,datafile的变化,从而做针对性的优化和调整。当然,通过这个,也能知道瓶颈。
  3. 可以清楚的知道某个库级别,表级别的压力情况,这个比之前count sql数量,观察data size要靠谱,真实的多。
  4. 可以做前瞻性的规划,比如:拆库拆表,可以指导如何按照压力负载均衡的做到合理来优化拆分
  5. 通过表级别的count监控,还可以用做前端缓存的利用率监控。
  6. 可以知道哪些db.table是以只读为主,哪些db.test是以只写为主。从而又进一步做缓存和业务监控。
mysql> SELECT file_name AS file,
    ->        count_read,
    ->        sys.format_bytes(sum_number_of_bytes_read) AS total_read,
    ->        count_write,
    ->        sys.format_bytes(sum_number_of_bytes_write) AS total_written,
    ->        sys.format_bytes(sum_number_of_bytes_read + sum_number_of_bytes_write) AS total
    ->   FROM performance_schema.file_summary_by_instance
    ->  ORDER BY sum_number_of_bytes_read + sum_number_of_bytes_write DESC limit 10;
+------------------------------------------------------+------------+------------+-------------+---------------+-----------+
| file                                                 | count_read | total_read | count_write | total_written | total     |
+------------------------------------------------------+------------+------------+-------------+---------------+-----------+
| /home/data_sas/ltdb/data/data/lt/sbtest1.ibd         |    4149424 | 63.30 GiB  |     1665754 | 27.78 GiB     | 91.08 GiB |
| /home/data_sas/ltdb/data/data/ibdata1                |       1614 | 27.23 MiB  |      214880 | 29.17 GiB     | 29.19 GiB |
| /home/data_sas/ltdb/data/redo/ib_logfile0            |          8 | 132.50 KiB |      623136 | 5.26 GiB      | 5.26 GiB  |
| /home/data_sas/ltdb/data/redo/ib_logfile1            |          0 | 0 bytes    |      422115 | 5.17 GiB      | 5.17 GiB  |
| /home/data_sas/ltdb/data/data/Innodb Merge Temp File |        688 | 688.00 MiB |         688 | 688.00 MiB    | 1.34 GiB  |
| /home/data_sas/ltdb/data/binlog/mysql-bin.000477     |       1284 | 10.02 MiB  |        4038 | 10.02 MiB     | 20.04 MiB |
| /home/data_sas/ltdb/data/data/ibtmp1                 |          2 | 32.00 KiB  |          95 | 13.30 MiB     | 13.33 MiB |
| /home/data_sas/ltdb/data/binlog/mysql-bin.000025     |          0 | 0 bytes    |        1368 | 10.40 MiB     | 10.40 MiB |
| /home/data_sas/ltdb/data/binlog/mysql-bin.000011     |          2 | 16.00 KiB  |        1355 | 10.33 MiB     | 10.35 MiB |
| /home/data_sas/ltdb/data/binlog/mysql-bin.000012     |          0 | 0 bytes    |        1348 | 10.34 MiB     | 10.34 MiB |
+------------------------------------------------------+------------+------------+-------------+---------------+-----------+
10 rows in set (0.00 sec)

除了读写的次数大小作为维度外,也可以使用延时作为维度统计。

Table I/O and Lock Wait Summaries

table_io_waits_summary_by_table

汇总由wait / io / table / sql / handler工具生成的所有表I / O等待事件。分组是按table

Field Type Null Default 备注
OBJECT_TYPE varchar(64) YES NULL 库名
OBJECT_SCHEMA varchar(64) YES NULL 文件名、表名、IP:SOCK值
OBJECT_NAME varchar(64) YES NULL FILE、TABLE、TEMPORARY TABLE
COUNT_STAR bigint(20) unsigned NO NULL 这些列聚合所有I / O操作。它们与相应的xxx_READ和xxx_WRITE列的总和相同
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ bigint(20) unsigned NO NULL 这些列聚合所有读操作。它们与相应的xxx_FETCH列的总和相同
SUM_TIMER_READ bigint(20) unsigned NO NULL  
MIN_TIMER_READ bigint(20) unsigned NO NULL  
AVG_TIMER_READ bigint(20) unsigned NO NULL  
MAX_TIMER_READ bigint(20) unsigned NO NULL  
COUNT_WRITE bigint(20) unsigned NO NULL 这些列聚合所有写入操作。它们与相应的xxx_INSERT,xxx_UPDATE和xxx_DELETE列的总和相同
SUM_TIMER_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE bigint(20) unsigned NO NULL  
COUNT_FETCH bigint(20) unsigned NO NULL 这些列聚合所有的提取操作
SUM_TIMER_FETCH bigint(20) unsigned NO NULL  
MIN_TIMER_FETCH bigint(20) unsigned NO NULL  
AVG_TIMER_FETCH bigint(20) unsigned NO NULL  
MAX_TIMER_FETCH bigint(20) unsigned NO NULL  
COUNT_INSERT bigint(20) unsigned NO NULL 这些列聚合所有insert操作
SUM_TIMER_INSERT bigint(20) unsigned NO NULL  
MIN_TIMER_INSERT bigint(20) unsigned NO NULL  
AVG_TIMER_INSERT bigint(20) unsigned NO NULL  
MAX_TIMER_INSERT bigint(20) unsigned NO NULL  
COUNT_UPDATE bigint(20) unsigned NO NULL 这些列聚合所有update操作
SUM_TIMER_UPDATE bigint(20) unsigned NO NULL  
MIN_TIMER_UPDATE bigint(20) unsigned NO NULL  
AVG_TIMER_UPDATE bigint(20) unsigned NO NULL  
MAX_TIMER_UPDATE bigint(20) unsigned NO NULL  
COUNT_DELETE bigint(20) unsigned NO NULL 这些列聚合所有delete操作
SUM_TIMER_DELETE bigint(20) unsigned NO NULL  
MIN_TIMER_DELETE bigint(20) unsigned NO NULL  
AVG_TIMER_DELETE bigint(20) unsigned NO NULL  
MAX_TIMER_DELETE bigint(20) unsigned NO NULL  
使用说明
  1. 可以精确到表级别的IOPS,TPS。为诊断问题性能问题提供可靠的粒度。
  2. 可以指导通过数据来了解业务并且指导业务开发,为什么IUD很高,为什么S很高。
  3. 有些表如果只有IDU,或者甚至只有I,那么这些表根本就不适合放入在线DB,so,可以提供在线DB的架构优化。
重点说明

以performance_schema.table_io_waits_summary_by_table举例

  • 几个常用的命令:
show variables like 'perf%';
show status like 'perf%';
show engine performance_schema status;
(table_share_hash).count -- performance_schema 监控 当前表的数量
(table_share_hash).size  -- performance_schema 监控 表打开的最大的数量
  • 如果(table_share_hash).size 达到最大限制了会有什么影响?如何解决?
    • 如果达到最大限制,即(table_share_hash).count = (table_share_hash).size , 之后新的表就不能被统计进来。
    • 原来已经打开的表,任然受监控,不影响。

    如何解决呢?

    • 如果可以停mysql的话,可以调大performance_schema_max_table_instances 值。
    • 如果不能停mysql,可以适当的删除一些表如: drop table xx; 这样做可以减少(table_share_hash).count的数量。
    • 注意: truncate table performance_schema.table_io_waits_summary_by_table 只能reset status = 0 ,不会删除里面的记录,所以这个行不通。
  • performance_schema.table_io_waits_summary_by_table 里面的count_fetch 需要注意:

  • count_fetch, 指的是数据库底层com_fetch的量,千万别理解成select。

  • 哪些操作会导致count_fetch 增长呢?

    • insert 操作不会造成 count_fetch ++ , 但是update 会造成 count_fetch ++。

    • 其实,这也很好理解,因为update语句,会从数据库中fetch数据到server层以及内存,然后在修改。

    • select 操作会造成 count_fetch 增长。

  • 一次select,count_fetch 增长 1 么?

    • ​ 显然不是,count_fetch 指的是: 一次底层fetch调用,增长一次。比如:有一张表100条记录。SQL语句为:select * from table; rows_affected: 100rows那么count_fetch 至少是100,而不是1.

    • 为什么说至少是100呢?有可能会从二级索引中fetch 数据,然后再从主键索引中fetch 数据。特别注意: 有的时候count_update 不增长,也没有select 操作,为啥count_fetch 会增长呢?如果理解了count_fetch,你就不难懂了。

  • fetch 指的是从数据库文件fetch的fetch 调用。举例子:一条SQL语句如: update table_A set name = ‘test’ where id = 3; 你猜,会怎样?结果是:count_fetch 增加,count_update 没有增加。因为:根本就没有id=3的记录与之匹配,也就是说udpate根本就没有更改任何记录,所以count_update 不会增加,但是有fetch操作,所以count_fetch 由此增长。

验证:

mysql> SELECT object_schema AS table_schema,
    ->             object_name AS table_name,
    ->             count_star AS rows_io_total,
    ->             count_read AS rows_read,
    ->             count_write AS rows_write,
    ->             count_fetch AS rows_fetchs,
    ->             count_insert AS rows_inserts,
    ->             count_update AS rows_updates,
    ->             count_delete AS rows_deletes,
    ->             sys.format_time(sum_timer_fetch)  AS fetch_latency,
    ->             sys.format_time(sum_timer_insert) AS insert_latency,
    ->             sys.format_time(sum_timer_update) AS update_latency,
    ->             sys.format_time(sum_timer_delete) AS delete_latency
    ->      FROM performance_schema.table_io_waits_summary_by_table
    ->         ORDER BY sum_timer_wait DESC limit 10;
+--------------+------------+---------------+-----------+------------+-------------+--------------+--------------+--------------+---------------+----------------+----------------+----------------+
| table_schema | table_name | rows_io_total | rows_read | rows_write | rows_fetchs | rows_inserts | rows_updates | rows_deletes | fetch_latency | insert_latency | update_latency | delete_latency |
+--------------+------------+---------------+-----------+------------+-------------+--------------+--------------+--------------+---------------+----------------+----------------+----------------+
| lt           | sbtest1    |     730785272 | 723841944 |    6943328 |   723841944 |      1735832 |      3471664 |      1735832 | 5.65 h        | 1.39 h         | 6.79 h         | 18.88 m        |
| lt           | test       |           199 |       177 |         22 |         177 |           14 |            8 |            0 | 2.27 m        | 881.14 us      | 911.04 us      | 0 ps           |
| lt           | apsm       |            40 |        40 |          0 |          40 |            0 |            0 |            0 | 18.08 ms      | 0 ps           | 0 ps           | 0 ps           |
| sys          | sys_config |             0 |         0 |          0 |           0 |            0 |            0 |            0 | 0 ps          | 0 ps           | 0 ps           | 0 ps           |
+--------------+------------+---------------+-----------+------------+-------------+--------------+--------------+--------------+---------------+----------------+----------------+----------------+
4 rows in set (0.00 sec)

table_io_waits_summary_by_index_usage

table_io_waits_summary_by_index_usage表汇总由wait / io / table / sql / handler工具生成的所有表索引I / O等待事件。 分组是按表索引。

Field Type Null Default 备注
OBJECT_TYPE varchar(64) YES NULL 库名
OBJECT_SCHEMA varchar(64) YES NULL 文件名、表名、IP:SOCK值
OBJECT_NAME varchar(64) YES NULL FILE、TABLE、TEMPORARY TABLE
INDEX_NAME varchar(64) YES NULL 索引名
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ bigint(20) unsigned NO NULL  
SUM_TIMER_READ bigint(20) unsigned NO NULL  
MIN_TIMER_READ bigint(20) unsigned NO NULL  
AVG_TIMER_READ bigint(20) unsigned NO NULL  
MAX_TIMER_READ bigint(20) unsigned NO NULL  
COUNT_WRITE bigint(20) unsigned NO NULL  
SUM_TIMER_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE bigint(20) unsigned NO NULL  
COUNT_FETCH bigint(20) unsigned NO NULL  
SUM_TIMER_FETCH bigint(20) unsigned NO NULL  
MIN_TIMER_FETCH bigint(20) unsigned NO NULL  
AVG_TIMER_FETCH bigint(20) unsigned NO NULL  
MAX_TIMER_FETCH bigint(20) unsigned NO NULL  
COUNT_INSERT bigint(20) unsigned NO NULL  
SUM_TIMER_INSERT bigint(20) unsigned NO NULL  
MIN_TIMER_INSERT bigint(20) unsigned NO NULL  
AVG_TIMER_INSERT bigint(20) unsigned NO NULL  
MAX_TIMER_INSERT bigint(20) unsigned NO NULL  
COUNT_UPDATE bigint(20) unsigned NO NULL  
SUM_TIMER_UPDATE bigint(20) unsigned NO NULL  
MIN_TIMER_UPDATE bigint(20) unsigned NO NULL  
AVG_TIMER_UPDATE bigint(20) unsigned NO NULL  
MAX_TIMER_UPDATE bigint(20) unsigned NO NULL  
COUNT_DELETE bigint(20) unsigned NO NULL  
SUM_TIMER_DELETE bigint(20) unsigned NO NULL  
MIN_TIMER_DELETE bigint(20) unsigned NO NULL  
AVG_TIMER_DELETE bigint(20) unsigned NO NULL  
MAX_TIMER_DELETE bigint(20) unsigned NO NULL  
使用说明
检测索引
-- 1)哪些索引没有利用? 2)哪些索引使用率高
mysql> SELECT OBJECT_SCHEMA AS table_schema,
    ->                OBJECT_NAME AS table_name,
    ->                INDEX_NAME as index_name,
    ->                COUNT_FETCH AS rows_fetched,
    ->                sys.format_time(SUM_TIMER_FETCH) AS select_latency,
    ->                COUNT_INSERT AS rows_inserted,
    ->                sys.format_time(SUM_TIMER_INSERT) AS insert_latency,
    ->                COUNT_UPDATE AS rows_updated,
    ->                sys.format_time(SUM_TIMER_UPDATE) AS update_latency,
    ->                COUNT_DELETE AS rows_deleted,
    ->                sys.format_time(SUM_TIMER_INSERT) AS delete_latency
    -> FROM performance_schema.table_io_waits_summary_by_index_usage
    -> WHERE index_name IS NOT NULL
    -> ORDER BY sum_timer_wait DESC;
+--------------+------------+------------+--------------+----------------+---------------+----------------+--------------+----------------+--------------+----------------+
| table_schema | table_name | index_name | rows_fetched | select_latency | rows_inserted | insert_latency | rows_updated | update_latency | rows_deleted | delete_latency |
+--------------+------------+------------+--------------+----------------+---------------+----------------+--------------+----------------+--------------+----------------+
| lt           | sbtest1    | PRIMARY    |    723841944 | 5.65 h         |             0 | 0 ps           |      3471664 | 6.79 h         |      1735832 | 0 ps           |
| lt           | apsm       | PRIMARY    |            0 | 0 ps           |             0 | 0 ps           |            0 | 0 ps           |            0 | 0 ps           |
| lt           | apsm       | apsmactno  |            0 | 0 ps           |             0 | 0 ps           |            0 | 0 ps           |            0 | 0 ps           |
| sys          | sys_config | PRIMARY    |            0 | 0 ps           |             0 | 0 ps           |            0 | 0 ps           |            0 | 0 ps           |
| lt           | sbtest1    | k_1        |            0 | 0 ps           |             0 | 0 ps           |            0 | 0 ps           |            0 | 0 ps           |
+--------------+------------+------------+--------------+----------------+---------------+----------------+--------------+----------------+--------------+----------------+
5 rows in set (0.01 sec)
找到全表扫描的表
-- 1)能找到哪些表被全表扫描的多,从而针对性的对这张表优化。
-- 2)优化内存使用率。将full_scann减少,更加能够提高内存利用率。能够让更多合理的数据进入内存,从而进一步的减少了slow
mysql> SELECT object_schema,
    ->        object_name,
    ->        count_read AS rows_full_scanned
    ->   FROM performance_schema.table_io_waits_summary_by_index_usage
    ->  WHERE index_name IS NULL
    ->    AND count_read > 0
    ->  ORDER BY count_read DESC;
+---------------+-------------+-------------------+
| object_schema | object_name | rows_full_scanned |
+---------------+-------------+-------------------+
| lt            | test        |               177 |
| lt            | apsm        |                40 |
+---------------+-------------+-------------------+
2 rows in set (0.00 sec)
找出未使用过的index和schema
mysql>  SELECT object_schema,
    ->         object_name,
    ->         index_name
    ->    FROM performance_schema.table_io_waits_summary_by_index_usage
    ->   WHERE index_name IS NOT NULL
    ->     AND count_star = 0
    ->     AND index_name <> 'PRIMARY'
    ->   ORDER BY object_schema, object_name;
+---------------+-------------+------------+
| object_schema | object_name | index_name |
+---------------+-------------+------------+
| lt            | apsm        | apsmactno  |
| lt            | sbtest1     | k_1        |
+---------------+-------------+------------+
2 rows in set (0.00 sec)

table_lock_waits_summary_by_table

table_lock_waits_summary_by_table表汇总由wait / lock / table / sql / handler工具生成的所有表锁等待事件。分组是table

Field Type Null Default 备注
OBJECT_TYPE varchar(64) YES NULL 库名
OBJECT_SCHEMA varchar(64) YES NULL 文件名、表名、IP:SOCK值
OBJECT_NAME varchar(64) YES NULL FILE、TABLE、TEMPORARY TABLE
COUNT_STAR bigint(20) unsigned NO NULL 这些列聚合所有锁操作。它们与相应的xxx_READ和xxx_WRITE列的总和相同。
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ bigint(20) unsigned NO NULL 这些列聚合所有读锁定操作。它们与相应的xxx_READ_NORMAL,xxx_READ_WITH_SHARED_LOCKS,xxx_READ_HIGH_PRIORITY和xxx_READ_NO_INSERT列的总和相同。
SUM_TIMER_READ bigint(20) unsigned NO NULL  
MIN_TIMER_READ bigint(20) unsigned NO NULL  
AVG_TIMER_READ bigint(20) unsigned NO NULL  
MAX_TIMER_READ bigint(20) unsigned NO NULL  
COUNT_WRITE bigint(20) unsigned NO NULL 这些列聚合所有写锁定操作。它们与相应的xxx_WRITE_ALLOW_WRITE,xxx_WRITE_CONCURRENT_INSERT,xxx_WRITE_LOW_PRIORITY和xxx_WRITE_NORMAL列的总和相同。
SUM_TIMER_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE bigint(20) unsigned NO NULL  
COUNT_READ_NORMAL bigint(20) unsigned NO NULL 这些列聚合内部读锁。
SUM_TIMER_READ_NORMAL bigint(20) unsigned NO NULL  
MIN_TIMER_READ_NORMAL bigint(20) unsigned NO NULL  
AVG_TIMER_READ_NORMAL bigint(20) unsigned NO NULL  
MAX_TIMER_READ_NORMAL bigint(20) unsigned NO NULL  
COUNT_READ_WITH_SHARED_LOCKS bigint(20) unsigned NO NULL 这些列聚合内部读锁。
SUM_TIMER_READ_WITH_SHARED_LOCKS bigint(20) unsigned NO NULL  
MIN_TIMER_READ_WITH_SHARED_LOCKS bigint(20) unsigned NO NULL  
AVG_TIMER_READ_WITH_SHARED_LOCKS bigint(20) unsigned NO NULL  
MAX_TIMER_READ_WITH_SHARED_LOCKS bigint(20) unsigned NO NULL  
COUNT_READ_HIGH_PRIORITY bigint(20) unsigned NO NULL 这些列聚合内部读锁。
SUM_TIMER_READ_HIGH_PRIORITY bigint(20) unsigned NO NULL  
MIN_TIMER_READ_HIGH_PRIORITY bigint(20) unsigned NO NULL  
AVG_TIMER_READ_HIGH_PRIORITY bigint(20) unsigned NO NULL  
MAX_TIMER_READ_HIGH_PRIORITY bigint(20) unsigned NO NULL  
COUNT_READ_NO_INSERT bigint(20) unsigned NO NULL 这些列聚合内部读锁。
SUM_TIMER_READ_NO_INSERT bigint(20) unsigned NO NULL  
MIN_TIMER_READ_NO_INSERT bigint(20) unsigned NO NULL  
AVG_TIMER_READ_NO_INSERT bigint(20) unsigned NO NULL  
MAX_TIMER_READ_NO_INSERT bigint(20) unsigned NO NULL  
COUNT_READ_EXTERNAL bigint(20) unsigned NO NULL 这些列聚合了外部读锁。
SUM_TIMER_READ_EXTERNAL bigint(20) unsigned NO NULL  
MIN_TIMER_READ_EXTERNAL bigint(20) unsigned NO NULL  
AVG_TIMER_READ_EXTERNAL bigint(20) unsigned NO NULL  
MAX_TIMER_READ_EXTERNAL bigint(20) unsigned NO NULL  
COUNT_WRITE_ALLOW_WRITE bigint(20) unsigned NO NULL 这些列聚合内部写锁。
SUM_TIMER_WRITE_ALLOW_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE_ALLOW_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE_ALLOW_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE_ALLOW_WRITE bigint(20) unsigned NO NULL  
COUNT_WRITE_CONCURRENT_INSERT bigint(20) unsigned NO NULL 这些列聚合内部写锁。
SUM_TIMER_WRITE_CONCURRENT_INSERT bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE_CONCURRENT_INSERT bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE_CONCURRENT_INSERT bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE_CONCURRENT_INSERT bigint(20) unsigned NO NULL  
COUNT_WRITE_LOW_PRIORITY bigint(20) unsigned NO NULL 这些列聚合内部写锁。
SUM_TIMER_WRITE_LOW_PRIORITY bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE_LOW_PRIORITY bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE_LOW_PRIORITY bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE_LOW_PRIORITY bigint(20) unsigned NO NULL  
COUNT_WRITE_NORMAL bigint(20) unsigned NO NULL 这些列聚合内部写锁。
SUM_TIMER_WRITE_NORMAL bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE_NORMAL bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE_NORMAL bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE_NORMAL bigint(20) unsigned NO NULL  
COUNT_WRITE_EXTERNAL bigint(20) unsigned NO NULL 这些列聚合外部写锁。
SUM_TIMER_WRITE_EXTERNAL bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE_EXTERNAL bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE_EXTERNAL bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE_EXTERNAL bigint(20) unsigned NO NULL  
An internal lock corresponds to a lock in the SQL layer. This is currently implemented by a call to thr_lock(). In event rows, these locks are distinguished by the OPERATION column, which has one of these values
read normal
read with shared locks
read high priority
read no insert
write allow write
write concurrent insert
write delayed
write low priority
write normal
An external lock corresponds to a lock in the storage engine layer. This is currently implemented by a call to handler::external_lock(). In event rows, these locks are distinguished by the OPERATION column, which has one of these values:
read external
write external

Socket Summaries

socket_summary_by_event_name

针对所有套接字I / O操作,每个套接字仪器,由wait / io / socket / *仪器生成的统计计时器和字节计数统计信息

Field Type Null Default 备注
EVENT_NAME varchar(128) NO NULL 事件名
COUNT_STAR bigint(20) unsigned NO NULL 这些列聚合所有操作
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ bigint(20) unsigned NO NULL 这些列聚合所有接收操作(RECV,RECVFROM和RECVMSG)
SUM_TIMER_READ bigint(20) unsigned NO NULL  
MIN_TIMER_READ bigint(20) unsigned NO NULL  
AVG_TIMER_READ bigint(20) unsigned NO NULL  
MAX_TIMER_READ bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_READ bigint(20) unsigned NO NULL  
COUNT_WRITE bigint(20) unsigned NO NULL 这些列聚合所有发送操作(SEND,SENDTO和SENDMSG)
SUM_TIMER_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_WRITE bigint(20) unsigned NO NULL  
COUNT_MISC bigint(20) unsigned NO NULL 这些列汇总了所有其他套接字操作,如CONNECT,LISTEN,ACCEPT,CLOSE和SHUTDOWN。这些操作没有字节计数
SUM_TIMER_MISC bigint(20) unsigned NO NULL  
MIN_TIMER_MISC bigint(20) unsigned NO NULL  
AVG_TIMER_MISC bigint(20) unsigned NO NULL  
MAX_TIMER_MISC bigint(20) unsigned NO NULL  

socket_summary_by_instance

对于每个套接字实例的所有套接字I / O操作,wait / io / socket / *工具生成的聚合计时器和字节计数统计信息。当连接终止时,对应于它的socket_summary_by_instance中的行将被删除。

Field Type Null Default 备注
EVENT_NAME varchar(128) NO NULL 指示套接字的类:client_connection,server_tcpip_socket,server_unix_socket。该列可以分组,以隔离客户端活动与服务器侦听套接字的活动
OBJECT_INSTANCE_BEGIN bigint(20) unsigned NO NULL 内存地址
COUNT_STAR bigint(20) unsigned NO NULL  
SUM_TIMER_WAIT bigint(20) unsigned NO NULL  
MIN_TIMER_WAIT bigint(20) unsigned NO NULL  
AVG_TIMER_WAIT bigint(20) unsigned NO NULL  
MAX_TIMER_WAIT bigint(20) unsigned NO NULL  
COUNT_READ bigint(20) unsigned NO NULL  
SUM_TIMER_READ bigint(20) unsigned NO NULL  
MIN_TIMER_READ bigint(20) unsigned NO NULL  
AVG_TIMER_READ bigint(20) unsigned NO NULL  
MAX_TIMER_READ bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_READ bigint(20) unsigned NO NULL  
COUNT_WRITE bigint(20) unsigned NO NULL  
SUM_TIMER_WRITE bigint(20) unsigned NO NULL  
MIN_TIMER_WRITE bigint(20) unsigned NO NULL  
AVG_TIMER_WRITE bigint(20) unsigned NO NULL  
MAX_TIMER_WRITE bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_WRITE bigint(20) unsigned NO NULL  
COUNT_MISC bigint(20) unsigned NO NULL  
SUM_TIMER_MISC bigint(20) unsigned NO NULL  
MIN_TIMER_MISC bigint(20) unsigned NO NULL  
AVG_TIMER_MISC bigint(20) unsigned NO NULL  
MAX_TIMER_MISC bigint(20) unsigned NO NULL  

Memory Summaries

memory_summary_by_account_by_event_name

memory_summary_by_account_by_event_name具有USER,HOST和EVENT_NAME列。每行总结了给定帐户(用户和主机组合)和事件名称的事件

Field Type Null Default 备注
USER char(32) YES NULL  
HOST char(60) YES NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_ALLOC bigint(20) unsigned NO NULL 调用内存分配函数的总数
COUNT_FREE bigint(20) unsigned NO NULL 调用无内存函数的总数
SUM_NUMBER_OF_BYTES_ALLOC bigint(20) unsigned NO NULL 分配的内存块的聚合大小
SUM_NUMBER_OF_BYTES_FREE bigint(20) unsigned NO NULL 释放的内存块的聚合大小
LOW_COUNT_USED bigint(20) NO NULL 尚未释放的当前分配的块的总数。这是一个方便列,等于COUNT_ALLOC - COUNT_FREE
CURRENT_COUNT_USED bigint(20) NO NULL 当前分配的内存块的汇总大小尚未释放。这是一个方便列,等于SUM_NUMBER_OF_BYTES_ALLOC - SUM_NUMBER_OF_BYTES_FREE
HIGH_COUNT_USED bigint(20) NO NULL 对应于CURRENT_COUNT_USED列的低水位线
LOW_NUMBER_OF_BYTES_USED bigint(20) NO NULL 对应于CURRENT_COUNT_USED列的高水位线
CURRENT_NUMBER_OF_BYTES_USED bigint(20) NO NULL 对应于CURRENT_NUMBER_OF_BYTES_USED列的低水位标记
HIGH_NUMBER_OF_BYTES_USED bigint(20) NO NULL 对应于CURRENT_NUMBER_OF_BYTES_USED列的高水位标记
使用说明
对于每个线程的统计信息,适用以下规则:
当分配大小为N的检测内存块时,性能模式会对内存汇总表列进行这些更新:
COUNT_ALLOC:增加1
CURRENT_COUNT_USED:增加1
HIGH_COUNT_USED:如果CURRENT_COUNT_USED是新的最大值,则会增加
SUM_NUMBER_OF_BYTES_ALLOC:增加N
CURRENT_NUMBER_OF_BYTES_USED:增加了N
HIGH_NUMBER_OF_BYTES_USED:如果CURRENT_NUMBER_OF_BYTES_USED是新的最高值,则会增加N
 
当取消分配检测到的内存块时,性能模式会对内存汇总表列进行这些更新:
COUNT_FREE:增加1
CURRENT_COUNT_USED:减少1
LOW_COUNT_USED:如果CURRENT_COUNT_USED是新的最低值,则减少
SUM_NUMBER_OF_BYTES_FREE:增加N
CURRENT_NUMBER_OF_BYTES_USED:减少N
LOW_NUMBER_OF_BYTES_USED:如果CURRENT_NUMBER_OF_BYTES_USED是新的最低值,则减少N

对于较高级别的聚合(全局,按帐户,按用户,按主机),相同的规则适用于低和高水位的预期。
LOW_COUNT_USED和LOW_NUMBER_OF_BYTES_USED是较低的估算值。性能架构报告的值保证小于或等于运行时有效使用的最低存储量或大小。
HIGH_COUNT_USED和HIGH_NUMBER_OF_BYTES_USED是较高的估算值。性能架构报告的值保证大于或等于运行时有效使用的内存的最高计数或大小。
对于除memory_summary_global_by_event_name之外的汇总表中的较低估计值,如果内存所有权在线程之间传输,则值可能为负。

这里是一个估计计算的例子。但请注意,估计实施可能会发生变化:
线程1在执行期间使用1MB到2MB的内存,由memory_summary_by_thread_by_event_name表的LOW_NUMBER_OF_BYTES_USED和HIGH_NUMBER_OF_BYTES_USED列报告。
线程2在执行期间使用范围从10MB到12MB的内存,同样报告。

当这两个线程属于相同的用户帐户时,每个帐户的摘要估计这个帐户使用的内存在11MB到14MB之间。也就是说,较高级别聚合的LOW_NUMBER_OF_BYTES_USED是每个LOW_NUMBER_OF_BYTES_USED(假设最差情况)的总和。同样,较高级别汇总的HIGH_NUMBER_OF_BYTES_USED是每个HIGH_NUMBER_OF_BYTES_USED(假设最差情况)的总和。
11MB是一个较低的估计,只有当两个线程同时达到低使用标记时才能发生。
14MB是一个更高的估计,只有当两个线程同时达到高使用标记时才能发生。
该帐户的实际内存使用量可能在11.5MB到13.5MB之间。

memory_summary_by_host_by_event_name

memory_summary_by_host_by_event_name包含HOST和EVENT_NAME列。每行总结给定主机和事件名称的事件

Field Type Null Default 备注
HOST char(60) YES NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_ALLOC bigint(20) unsigned NO NULL  
COUNT_FREE bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_ALLOC bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_FREE bigint(20) unsigned NO NULL  
LOW_COUNT_USED bigint(20) NO NULL  
CURRENT_COUNT_USED bigint(20) NO NULL  
HIGH_COUNT_USED bigint(20) NO NULL  
LOW_NUMBER_OF_BYTES_USED bigint(20) NO NULL  
CURRENT_NUMBER_OF_BYTES_USED bigint(20) NO NULL  
HIGH_NUMBER_OF_BYTES_USED bigint(20) NO NULL  

memory_summary_by_thread_by_event_name

memory_summary_by_thread_by_event_name具有THREAD_ID和EVENT_NAME列。每行总结给定线程和事件名称的事件

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_ALLOC bigint(20) unsigned NO NULL  
COUNT_FREE bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_ALLOC bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_FREE bigint(20) unsigned NO NULL  
LOW_COUNT_USED bigint(20) NO NULL  
CURRENT_COUNT_USED bigint(20) NO NULL  
HIGH_COUNT_USED bigint(20) NO NULL  
LOW_NUMBER_OF_BYTES_USED bigint(20) NO NULL  
CURRENT_NUMBER_OF_BYTES_USED bigint(20) NO NULL  
HIGH_NUMBER_OF_BYTES_USED bigint(20) NO NULL  

memory_summary_by_user_by_event_name

memory_summary_by_user_by_event_name具有USER和EVENT_NAME列。每行总结给定用户和事件名称的事件

Field Type Null Default 备注
USER char(32) YES NULL  
EVENT_NAME varchar(128) NO NULL  
COUNT_ALLOC bigint(20) unsigned NO NULL  
COUNT_FREE bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_ALLOC bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_FREE bigint(20) unsigned NO NULL  
LOW_COUNT_USED bigint(20) NO NULL  
CURRENT_COUNT_USED bigint(20) NO NULL  
HIGH_COUNT_USED bigint(20) NO NULL  
LOW_NUMBER_OF_BYTES_USED bigint(20) NO NULL  
CURRENT_NUMBER_OF_BYTES_USED bigint(20) NO NULL  
HIGH_NUMBER_OF_BYTES_USED bigint(20) NO NULL  

memory_summary_global_by_event_name

memory_summary_global_by_event_name有一个EVENT_NAME列。每行总结给定事件名称的事件

Field Type Null Default 备注
EVENT_NAME varchar(128) NO NULL  
COUNT_ALLOC bigint(20) unsigned NO NULL  
COUNT_FREE bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_ALLOC bigint(20) unsigned NO NULL  
SUM_NUMBER_OF_BYTES_FREE bigint(20) unsigned NO NULL  
LOW_COUNT_USED bigint(20) NO NULL  
CURRENT_COUNT_USED bigint(20) NO NULL  
HIGH_COUNT_USED bigint(20) NO NULL  
LOW_NUMBER_OF_BYTES_USED bigint(20) NO NULL  
CURRENT_NUMBER_OF_BYTES_USED bigint(20) NO NULL  
HIGH_NUMBER_OF_BYTES_USED bigint(20) NO NULL  

Status Variable Summaries

status_by_user

Field Type Null Default 备注
USER char(32) YES NULL  
VARIABLE_NAME varchar(64) NO NULL  
VARIABLE_VALUE varchar(1024) YES NULL  

status_by_account

Field Type Null Default 备注
USER char(32) YES NULL  
HOST char(60) YES NULL  
VARIABLE_NAME varchar(64) NO NULL  
VARIABLE_VALUE varchar(1024) YES NULL  

status_by_host

Field Type Null Default 备注
HOST char(60) YES NULL  
VARIABLE_NAME varchar(64) NO NULL  
VARIABLE_VALUE varchar(1024) YES NULL  

status_by_thread

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL  
VARIABLE_NAME varchar(64) NO NULL  
VARIABLE_VALUE varchar(1024) YES NULL  

14.Miscellaneous Tables

performance_timers

系统支持的统计时间单位

Field Type Null Default 备注
TIMER_NAME enum(‘CYCLE’,
‘NANOSECOND’,
‘MICROSECOND’,
‘MILLISECOND’,’TICK’)
NO NULL 可用timer的名称。 CYCLE是指基于CPU(处理器)周期计数器的定时器。 您可以使用的setup_timers中的计时器是其他列中没有NULL的计时器。 如果与给定的计时器名称相关联的值为NULL,则该平台不支持该定时器。
TIMER_FREQUENCY bigint(20) YES NULL 表示每秒的计时器数量单位。对于CYCLE计时器,频率相当于cpu转速。该值相当于2.4GHZ的cpu.其他的计时器是基于秒的固定分数
TIMER_RESOLUTION bigint(20) YES NULL 定时器值一次增加的定时器单元数
TIMER_OVERHEAD bigint(20) YES NULL 给定定时器获得一个时序的最小开销周期数

Threads

服务线程信息

Field Type Null Default 备注
THREAD_ID bigint(20) unsigned NO NULL 唯一线程标识符
NAME varchar(128) NO NULL 线程名
TYPE varchar(10) NO NULL 线程类型,前台后台
PROCESSLIST_ID bigint(20) unsigned YES NULL INFORMATION_SCHEMA.PROCESSLIST表显示的线程
PROCESSLIST_USER varchar(32) YES NULL 关联到一个前台线程的用户,后台线程为NULL
PROCESSLIST_HOST varchar(60) YES NULL 关联到前台线程一个客户端的主机名, 后台线程为NULL
PROCESSLIST_DB varchar(64) YES NULL 线程默认的数据库,或NULL如果没有
PROCESSLIST_COMMAND varchar(16) YES NULL 线程正在执行的命令的类型
PROCESSLIST_TIME bigint(20) YES NULL 线程已经在其当前状态持续的时间,单位秒
PROCESSLIST_STATE varchar(64) YES NULL 动作、事件或状态表明线程正在做什么
PROCESSLIST_INFO longtext YES NULL 线程正在执行的语句,或者null,如果没有执行任何语句
PARENT_THREAD_ID bigint(20) unsigned YES NULL 如果这个线程是一个的子线程(源自另一个线程),这是产生子线程的THREAD_ID值
ROLE varchar(64) YES NULL 未使用
INSTRUMENTED enum(‘YES’,’NO’) NO NULL 线程是否检测,这个不影响threads表,这只影响线程执行事件是否被检测
HISTORY enum(‘YES’,’NO’) NO NULL  
CONNECTION_TYPE varchar(16) YES NULL  
THREAD_OS_ID bigint(20) unsigned YES NULL  
示例
mysql> show processlist;
+-----+------+-----------+--------------------+---------+------+----------+-----------------------------------------+
| Id  | User | Host      | db                 | Command | Time | State    | Info                                    |
+-----+------+-----------+--------------------+---------+------+----------+-----------------------------------------+
| 221 | root | localhost | performance_schema | Query   |    0 | starting | show processlist                        |
| **222 | root | localhost | lt                 | Query   |    3 | updating | update test set col2='a' where col1='a' |**
| 223 | root | localhost | lt                 | Sleep   |    6 |          | NULL                                    |
+-----+------+-----------+--------------------+---------+------+----------+-----------------------------------------+
3 rows in set (0.00 sec)

host_cache

来自内部主机缓存信息

Field Type Null Default 备注
IP varchar(64) NO NULL  
HOST varchar(255) YES NULL  
HOST_VALIDATED enum(‘YES’,’NO’) NO NULL  
SUM_CONNECT_ERRORS bigint(20) NO NULL  
COUNT_HOST_BLOCKED_ERRORS bigint(20) NO NULL  
COUNT_NAMEINFO_TRANSIENT_ERRORS bigint(20) NO NULL  
COUNT_NAMEINFO_PERMANENT_ERRORS bigint(20) NO NULL  
COUNT_FORMAT_ERRORS bigint(20) NO NULL  
COUNT_ADDRINFO_TRANSIENT_ERRORS bigint(20) NO NULL  
COUNT_ADDRINFO_PERMANENT_ERRORS bigint(20) NO NULL  
COUNT_FCRDNS_ERRORS bigint(20) NO NULL  
COUNT_HOST_ACL_ERRORS bigint(20) NO NULL  
COUNT_NO_AUTH_PLUGIN_ERRORS bigint(20) NO NULL  
COUNT_AUTH_PLUGIN_ERRORS bigint(20) NO NULL  
COUNT_HANDSHAKE_ERRORS bigint(20) NO NULL  
COUNT_PROXY_USER_ERRORS bigint(20) NO NULL  
COUNT_PROXY_USER_ACL_ERRORS bigint(20) NO NULL  
COUNT_AUTHENTICATION_ERRORS bigint(20) NO NULL  
COUNT_SSL_ERRORS bigint(20) NO NULL  
COUNT_MAX_USER_CONNECTIONS_ERRORS bigint(20) NO NULL  
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS bigint(20) NO NULL  
COUNT_DEFAULT_DATABASE_ERRORS bigint(20) NO NULL  
COUNT_INIT_CONNECT_ERRORS bigint(20) NO NULL  
COUNT_LOCAL_ERRORS bigint(20) NO NULL  
COUNT_UNKNOWN_ERRORS bigint(20) NO NULL  
FIRST_SEEN timestamp NO 0000-00-00 00:00:00  
LAST_SEEN timestamp NO 0000-00-00 00:00:00  
FIRST_ERROR_SEEN timestamp YES 0000-00-00 00:00:00  
LAST_ERROR_SEEN timestamp YES 0000-00-00 00:00:00  

附录1:性能模式状态变量具有以下含义

Performance_schema_accounts_lost 一行无法添加到帐户表中的次数,因为它已满
Performance_schema_cond_classes_lost 无法装载多少条件仪器
Performance_schema_cond_instances_lost 无法创建多少条件仪器实例
Performance_schema_digest_lost 在events_statements_summary_by_digest表中无法检测的摘要实例的数量。如果performance_schema_digests_size的值太小,那么这可能非零。
Performance_schema_file_classes_lost 无法加载多少文件文件
Performance_schema_file_handles_lost 无法打开多少文件工具实例
Performance_schema_file_instances_lost 无法创建多少个文件工具实例
Performance_schema_hosts_lost 一行无法添加到hosts表的次数,因为它已满
Performance_schema_index_stat_lost 统计数据丢失的索引数。如果performance_schema_max_index_stat的值太小,这可能非零
Performance_schema_locker_lost 由于以下条件,有多少事件“丢失”或未记录:事件是递归的(例如,等待A导致等待B,这导致在C上等待)。嵌套事件栈的深度大于实现强加的限制。性能模式记录的事件不是递归的,因此该变量应始终为0。
Performance_schema_memory_classes_lost 内存仪器无法加载的次数
Performance_schema_metadata_lock_lost metadata_locks表中无法检测的元数据锁的数量。如果performance_schema_max_metadata_locks的值太小,这可能非零
Performance_schema_mutex_classes_lost 无法加载多少互斥锁数量
Performance_schema_mutex_instances_lost 无法创建多少互斥锁实例
Performance_schema_nested_statement_lost 统计信息丢失的存储程序语句数。如果performance_schema_max_statement_stack的值太小,这可能非零
Performance_schema_prepared_statements_lost 在prepare_statements_instances表中无法检测到的准备语句数。如果performance_schema_max_prepared_statements_instances的值太小,这可能非零
Performance_schema_program_lost 统计信息丢失的存储程序数。如果performance_schema_max_program_instances的值太小,这可能非零
Performance_schema_rwlock_classes_lost 有多少读写锁无法加载
Performance_schema_rwlock_instances_lost 有多少读写锁实例无法加载
Performance_schema_session_connect_attrs_lost 发生连接属性截断的连接数。对于给定的连接,如果客户端发送聚合大小较大的连接属性键/值对大于由performance_schema_session_connect_attrs_size系统变量的值允许的预留存储空间,则性能模式会截断属性数据并增加Performance_schema_session_connect_attrs_lost。如果此值不为零,则可能希望将performance_schema_session_connect_attrs_size设置为较大的值
Performance_schema_socket_classes_lost 无法装载多少个SOCKET仪器
Performance_schema_socket_instances_lost 无法装载多少个SOCKET实例仪器
Performance_schema_stage_classes_lost  
Performance_schema_statement_classes_lost  
Performance_schema_table_handles_lost 无法打开多少表句柄实例。如果performance_schema_max_table_handles的值太小,那么这可以非零
Performance_schema_table_instances_lost  
Performance_schema_table_instances_lost 锁统计信息丢失的表数。如果performance_schema_max_table_lock_stat的值太小,这可能非零
Performance_schema_thread_classes_lost  
Performance_schema_thread_classes_lost 线程表中无法检测的线程实例数。如果performance_schema_max_thread_instances的值太小,这可能非零
Performance_schema_users_lost 一行无法添加到users表的次数,因为它已满