凤凰彩票平台手机版_凤凰彩票官方版app下载|唯一官方网站

来自 凤凰彩票官方版app下载技术 2019-08-21 11:02 的文章
当前位置: 凤凰彩票平台手机版 > 凤凰彩票官方版app下载技术 > 正文

performance_schema全方位介绍,事件计算

原标题:初相识|performance_schema全方位介绍(一)

原标题:数据库对象事件与品质计算 | performance_schema全方位介绍(五)

MySQL Performance-Schema(二) 理论篇,performanceschema

     MySQL Performance-Schema中一齐包罗52个表,首要分为几类:Setup表,Instance表,Wait 伊夫nt表,Stage 伊芙nt表Statement Event表,Connection表和Summary表。上一篇文章已经首要讲了Setup表,那篇小说将会分别就每一个等级次序的表做详细的描述。

Instance表
     instance中注重富含了5张表:cond_instances,file_instances,mutex_instances,rwlock_instances和socket_instances。
(1)cond_instances:条件等待对象实例
表中著录了系统中应用的规格变量的对象,OBJECT_INSTANCE_BEGIN为对象的内部存款和储蓄器地址。举个例子线程池的timer_cond实例的name为:wait/synch/cond/threadpool/timer_cond

(2)file_instances:文件实例
表中著录了系统中打开了文件的靶子,包含ibdata文件,redo文件,binlog文件,客户的表文件等,例如redo日志文件:/u01/my3306/data/ib_logfile0。open_count展现当前文件打开的数码,如若重来未有打开过,不会并发在表中。

(3)mutex_instances:互斥同步对象实例
表中记录了系统中动用互斥量对象的具备记录,在那之中name为:wait/synch/mutex/*。比如张开文件的互斥量:wait/synch/mutex/mysys/TH陆风X8_LOCK_open。LOCKED_BY_THREAD_ID展现哪个线程正持有mutex,若未有线程持有,则为NULL。

(4)rwlock_instances: 读写锁同步对象实例
表中记录了系统中选用读写锁对象的具备记录,个中name为 wait/synch/rwlock/*。WRITE_LOCKED_BY_THREAD_ID为正在有着该目的的thread_id,若未有线程持有,则为NULL,READ_LOCKED_BY_COUNT为记录了而且有稍许个读者持有读锁。通过 events_waits_current 表能够知晓,哪个线程在等候锁;通过rwlock_instances知道哪个线程持有锁。rwlock_instances的弱项是,只可以记录持有写锁的线程,对于读锁则无从。

(5)socket_instances:活跃会话对象实例
表中著录了thread_id,socket_id,ip和port,其余表能够通过thread_id与socket_instance举办关联,获取IP-PORT新闻,能够与运用接入起来。
event_name首要包罗3类:
wait/io/socket/sql/server_unix_socket,服务端unix监听socket
wait/io/socket/sql/server_tcpip_socket,服务端tcp监听socket
wait/io/socket/sql/client_connection,客户端socket

Wait Event表
      Wait表重要包涵3个表,events_waits_current,events_waits_history和events_waits_history_long,通过thread_id event_id能够独一鲜明一条记下。current表记录了脚下线程等待的风云,history表记录了各种线程前段时间等待的11个事件,而history_long表则记录了近期有所线程产生的10000个事件,这里的10和一千0都是能够安顿的。这八个表表结构同样,history和history_long表数据都出自current表。current表和history表中只怕会有双重事件,况兼history表中的事件都以马到成功了的,未有甘休的平地风波不会参与到history表中。
THREAD_ID:线程ID
EVENT_ID:当前线程的事件ID,和THREAD_ID组成贰个Primary Key。
END_EVENT_ID:当事件始于时,这一列被安装为NULL。当事件截至时,再创新为方今的风云ID。
SOURCE:该事件爆发时的源码文件
TIMER_START, TIMER_END, TIMER_WAIT:事件初叶/甘休和等候的时辰,单位为阿秒(picoseconds)

OBJECT_SCHEMA, OBJECT_NAME, OBJECT_TYPE视景况而定
对于联合对象(cond, mutex, rwlock),那几个3个值均为NULL
对此文本IO对象,OBJECT_SCHEMA为NULL,OBJECT_NAME为文件名,OBJECT_TYPE为FILE
对于SOCKET对象,OBJECT_NAME为该socket的IP:SOCK值
对于表I/O对象,OBJECT_SCHEMA是表的SCHEMA名,OBJECT_NAME是表名,OBJECT_TYPE为TABLE或者TEMPORARY TABLE
NESTING_EVENT_ID:该事件对应的父事件ID
NESTING_EVENT_TYPE:父事件类型(STATEMENT, STAGE, WAIT)
OPERATION:操作类型(lock, read, write)

Stage Event表 

       Stage表首要包括3个表,events_stages_current,events_stages_history和events_stages_history_long,通过thread_id event_id能够独一显著一条记下。表中著录了脚下线程所处的推行等第,由于能够知道各类阶段的实行时间,因而通过stage表能够取得SQL在各样阶段消耗的光阴。

THREAD_ID:线程ID
EVENT_ID:事件ID
END_EVENT_ID:刚停止的风浪ID
SOURCE:源码地方
TIMER_START, TIMER_END, TIMER_WAIT:事件始于/甘休和等待的时刻,单位为皮秒(picoseconds)
NESTING_EVENT_ID:该事件对应的父事件ID
NESTING_EVENT_TYPE:父事件类型(STATEMENT, STAGE, WAIT)

Statement Event表
      Statement表首要含有3个表,events_statements_current,events_statements_history和events_statements_history_long。通过thread_id event_id可以独一分明一条记下。Statments表只记录最顶层的伸手,SQL语句或是COMMAND,每条语句一行,对于嵌套的子查询或许存款和储蓄进度不会单独列出。event_name形式为statement/sql/*,或statement/com/*
SQL_TEXT:记录SQL语句
DIGEST:对SQL_TEXT做MD5发出的三18个人字符串。要是为consumer表中从未张开statement_digest选项,则为NULL。
DIGEST_TEXT:将讲话中值部分用问号代替,用于SQL语句归类。要是为consumer表中绝非展开statement_digest选项,则为NULL。
CURRENT_SCHEMA:暗中认可的数码库名
OBJECT_SCHEMA,OBJECT_NAME,OBJECT_TYPE:保留字段,全部为NULL
ROWS_AFFECTED:影响的数据
ROWS_SENT:重回的记录数
ROWS_EXAMINED:读取的记录数据
CREATED_TMP_DISK_TABLES:创造物理有时表数目
CREATED_TMP_TABLES:创制偶然表数目
SELECT_FULL_JOIN:join时,第一个表为全表扫描的数码
SELECT_FULL_RANGE_JOIN:join时,援引表采取range格局扫描的多寡
SELECT_RANGE:join时,第三个表选取range格局扫描的数目
SELECT_SCAN:join时,第一个表位全表扫描的多少
SORT_ROWS:排序的笔录数据
NESTING_EVENT_ID,NESTING_EVENT_TYPE,保留字段,为NULL。

Connection表
     Connection表记录了客商端的新闻,首要总结3张表:users,hosts和account表,accounts满含hosts和users的音信。
USER:用户名
HOST:用户的IP

Summary表
    Summary表集中了逐个维度的总结音讯包括表维度,索引维度,会话维度,语句维度和锁维度的总结音信。
(1).wait-summary表
events_waits_summary_global_by_event_name
此情此景:按等待事件类型聚合,各类事件一条记下。
events_waits_summary_by_instance
情形:按等待事件目的聚合,同一种等待事件,只怕有五个实例,各个实例有不相同的内存地址,由此
event_name object_instance_begin独一分明一条记下。
events_waits_summary_by_thread_by_event_name
情形:按种种线程和事件来计算,thread_id event_name独一鲜明一条记下。
COUNT_STAENCORE:事件计数
SUM_TIMER_WAIT:总的等待时间
MIN_TIMER_WAIT:最小等待时间
MAX_TIMER_WAIT:最大等待时间
AVG_TIMER_WAIT:平均等待时间

(2).stage-summary表
events_stages_summary_by_thread_by_event_name
events_stages_summary_global_by_event_name
与前方类似

(3).statements-summary表
events_statements_summary_by_thread_by_event_name表和events_statements_summary_global_by_event_name表与前面类似。对于events_statements_summary_by_digest表,
FIRST_SEEN_TIMESTAMP:第多个语句推行的年华
LAST_SEEN_TIMESTAMP:最终一个说话奉行的岁月
场所:用于总计某一段时间内top SQL

(4).file I/O summary表
file_summary_by_event_name [按事件类型计算]
file_summary_by_instance [按实际文件总括]
场景:物理IO维度
FILE_NAME:具体文件名,比如:/u01/my3306/data/tcbuyer_0168/tc_biz_order_2695.ibd
EVENT_NAME:事件名,比如:wait/io/file/innodb/innodb_data_file
COUNT_STAR,SUM_TIMER_WAIT,MIN_TIMER_WAIT,AVG_TIMER_WAIT,MAX_TIMER_WAIT
统计IO操作
COUNT_READ,SUM_TIMER_READ,MIN_TIMER_READ,AVG_TIMER_READ,MAX_TIMER_READ, SUM_NUMBER_OF_BYTES_READ
统计读
COUNT_WRITE,SUM_TIMER_WRITE,MIN_TIMER_WRITE,AVG_TIMER_WRITE,MAX_TIMER_WRITE, SUM_NUMBER_OF_BYTES_WRITE
统计写
COUNT_MISC,SUM_TIMER_MISC,MIN_TIMER_MISC,AVG_TIMER_MISC,MAX_TIMER_MISC
总括其余IO事件,例如create,delete,open,close等

(5).Table I/O and Lock Wait Summaries-表
table_io_waits_summary_by_table
基于wait/io/table/sql/handler,聚合每个表的I/O操作,[逻辑IO]
COUNT_STAR,SUM_TIMER_WAIT,MIN_TIMER_WAIT,AVG_TIMER_WAIT,MAX_TIMER_WAIT
统计IO操作
COUNT_STAR,SUM_TIMER_WAIT,MIN_TIMER_WAIT,AVG_TIMER_WAIT,MAX_TIMER_WAIT
统计读
COUNT_WRITE,SUM_TIMER_WRITE,MIN_TIMER_WRITE,AVG_TIMER_WRITE, MAX_TIMER_WRITE
统计写
COUNT_FETCH,SUM_TIMER_FETCH,MIN_TIMER_FETCH,AVG_TIMER_FETCH, MAX_TIMER_FETCH
与读同样
COUNT_INSERT,SUM_TIMER_INSERT,MIN_TIMER_INSERT,AVG_TIMER_INSERT,MAX_TIMER_INSERT
INSERT总结,相应的还大概有DELETE和UPDATE总括。

(6).table_io_waits_summary_by_index_usage
与table_io_waits_summary_by_table类似,按索引维度总结

(7).table_lock_waits_summary_by_table
聚拢了表锁等待事件,包含internal lock 和 external lock。
internal lock通过SQL层函数thr_lock调用,OPERATION值为:
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

external lock则经过接口函数handler::external_lock调用存储引擎层,
OPERATION列的值为:
read external
write external

(8).Connection Summaries表
events_waits_summary_by_account_by_event_name
events_waits_summary_by_user_by_event_name
events_waits_summary_by_host_by_event_name
events_stages_summary_by_account_by_event_name
events_stages_summary_by_user_by_event_name
events_stages_summary_by_host_by_event_name
events_statements_summary_by_account_by_event_name
events_statements_summary_by_user_by_event_name
events_statements_summary_by_host_by_event_name

(9).socket-summaries表
socket_summary_by_instance
socket_summary_by_event_name

其它表
performance_timers: 系统协助的总括时间单位
threads: 监视服务端的眼下运作的线程

Performance-Schema(二) 理论篇,performanceschema MySQL Performance-Schema中总括包括55个表,首要分为几类:Setup表,Instance表,Wait Event表,Stage Ev...

     MySQL Performance-Schema中一共包括伍17个表,首要分为几类:Setup表,Instance表,Wait Event表,Stage 伊芙nt表Statement 伊夫nt表,Connection表和Summary表。上一篇小说已经首要讲了Setup表,那篇文章将会独家就每一个档案的次序的表做详细的陈诉。

原标题:事件计算 | performance_schema全方位介绍(四)

图片 1

图片 2

Instance表
     instance中至关主要含有了5张表:cond_instances,file_instances,mutex_instances,rwlock_instances和socket_instances。
(1)cond_instances:条件等待对象实例
表中著录了系统中央银行使的法规变量的指标,OBJECT_INSTANCE_BEGIN为对象的内部存款和储蓄器地址。举个例子线程池的timer_cond实例的name为:wait/synch/cond/threadpool/timer_cond

图片 3

罗小波·沃趣科技(science and technology)尖端数据库本事专家

上一篇 《事件计算 | performance_schema全方位介绍》详细介绍了performance_schema的平地风波计算表,但那些总结数据粒度太粗,仅仅根据事件的5大门类 客商、线程等维度实行分拣总括,但一时大家必要从越来越细粒度的维度实行归类总计,举个例子:某些表的IO开销多少、锁花费多少、以及顾客连接的局地品质总结音信等。此时就需求查阅数据库对象事件总结表与本性计算表了。今天将指点大家一块儿踏上聚讼纷纷第五篇的征途(全系共7个篇章),本期将为大家精细入微授课performance_schema中目标事件总计表与性子计算表。上面,请随行大家一并起来performance_schema系统的就学之旅吧~

(2)file_instances:文件实例
表中著录了系统中开发了文本的靶子,满含ibdata文件,redo文件,binlog文件,顾客的表文件等,譬如redo日志文件:/u01/my3306/data/ib_logfile0。open_count彰显当前文件张开的多少,如若重来未有展开过,不会产出在表中。

罗小波·沃趣科技(science and technology)尖端数据库手艺专家

产品:沃趣科技(science and technology)

友谊提示:下文中的总结表中山高校部字段含义与上一篇 《事件总结 | performance_schema全方位介绍》 中涉嫌的总计表字段含义一样,下文中不再赘述。此外,由于有些计算表中的记录内容过长,限于篇幅会轻易部分文件,如有需求请自行安装MySQL 5.7.11上述版本跟随本文实行同步操作查看。

(3)mutex_instances:互斥同步对象实例
表中著录了系统中央银行使互斥量对象的装有记录,个中name为:wait/synch/mutex/*。举个例子张开文件的互斥量:wait/synch/mutex/mysys/TH安德拉_LOCK_open。LOCKED_BY_THREAD_ID显示哪个线程正持有mutex,若没无线程持有,则为NULL。

产品:沃趣科技(science and technology)

IT从业多年,历任运营工程师、高端运行程序猿、运营老董、数据库程序员,曾到场版本宣布系统、轻量级监察和控制系统、运行处理平台、数据库管理平台的设计与编辑,熟稔MySQL类别布局,Innodb存款和储蓄引擎,喜好专研开源技艺,追求完善。

01

(4)rwlock_instances: 读写锁同步对象实例
表中著录了系统中动用读写锁对象的装有记录,在那之中name为 wait/synch/rwlock/*。WRITE_LOCKED_BY_THREAD_ID为正值有着该指标的thread_id,若未有线程持有,则为NULL,READ_LOCKED_BY_COUNT为记录了何况有多少个读者持有读锁。通过 events_waits_current 表能够领略,哪个线程在等候锁;通过rwlock_instances知道哪个线程持有锁。rwlock_instances的缺点是,只可以记录持有写锁的线程,对于读锁则不能。

IT从业多年,历任运行技术员、高端运行程序猿、运转首席营业官、数据库技术员,曾加入版本发布系统、轻量级监察和控制系统、运营管理平台、数据库管理平台的设计与编辑,纯熟MySQL体系布局,Innodb存款和储蓄引擎,喜好专研开源技巧,追求完美。

|目 录1、什么是performance_schema

数据库对象计算表

(5)socket_instances:活跃会话对象实例
表中记录了thread_id,socket_id,ip和port,另外表能够由此thread_id与socket_instance进行关联,获取IP-PORT新闻,能够与使用接入起来。
event_name首要含有3类:
wait/io/socket/sql/server_unix_socket,服务端unix监听socket
wait/io/socket/sql/server_tcpip_socket,服务端tcp监听socket
wait/io/socket/sql/client_connection,客户端socket

| 导语

2、performance_schema使用便捷入门

1.数码库表品级对象等待事件总括

Wait Event表
      Wait表首要含有3个表,events_waits_current,events_waits_history和events_waits_history_long,通过thread_id event_id可以独一分明一条记下。current表记录了当前线程等待的事件,history表记录了各类线程目前拭目以俟的十三个事件,而history_long表则记录了这段时间具有线程发生的一千0个事件,这里的10和一千0都以足以安插的。这多少个表表结构同样,history和history_long表数据都源于current表。current表和history表中或然会有再次事件,並且history表中的事件都以形成了的,没有终止的风浪不会步入到history表中。
THREAD_ID:线程ID
EVENT_ID:当前线程的轩然大波ID,和THREAD_ID组成叁个Primary Key。
END_EVENT_ID:当事件初阶时,这一列棉被服装置为NULL。当事件截至时,再立异为当下的事件ID。
SOURCE:该事件时有爆发时的源码文件
TIMER_START, TIMER_END, TIMER_WAIT:事件始于/甘休和等待的小运,单位为皮秒(picoseconds)

在上一篇《事件记录 | performance_schema全方位介绍"》中,大家详细介绍了performance_schema的风云记录表,恭喜我们在攻读performance_schema的旅途度过了三个最狼狈的时期。将来,相信我们已经相比较清楚什么是事件了,但不常大家不须求领会每时每刻发生的每一条事件记录音信, 举例:大家期待领悟数据库运转以来一段时间的风浪总结数据,那年就供给查阅事件总计表了。明日将指引我们齐声踏上层层第四篇的道路(全系共7个篇章),在这一期里,大家将为大家精细入微授课performance_schema中事件总结表。计算事件表分为5个品种,分别为等候事件、阶段事件、语句事件、事务事件、内部存款和储蓄器事件。下边,请跟随大家一齐起来performance_schema系统的上学之旅吧。

2.1. 反省当前数据库版本是或不是帮助

遵循数据库对象名称(库等第对象和表等级对象,如:库名和表名)实行总括的等待事件。依据OBJECT_TYPE、OBJECT_SCHEMA、OBJECT_NAME列进行分组,根据COUNT_STAR、xxx_TIMER_WAIT字段实行计算。包蕴一张objects_summary_global_by_type表。

OBJECT_SCHEMA, OBJECT_NAME, OBJECT_TYPE视情形而定
对此联合对象(cond, mutex, rwlock),那么些3个值均为NULL
对于文本IO对象,OBJECT_SCHEMA为NULL,OBJECT_NAME为文件名,OBJECT_TYPE为FILE
对于SOCKET对象,OBJECT_NAME为该socket的IP:SOCK值
对于表I/O对象,OBJECT_SCHEMA是表的SCHEMA名,OBJECT_NAME是表名,OBJECT_TYPE为TABLE或者TEMPORARY TABLE
NESTING_EVENT_ID:该事件对应的父事件ID
NESTING_EVENT_TYPE:父事件类型(STATEMENT, STAGE, WAIT)
OPERATION:操作类型(lock, read, write)

| 等待事件总计表

2.2. 启用performance_schema

咱俩先来拜望表中记录的计算音讯是怎么着体统的。

Stage Event表 

performance_schema把等待事件总括表根据分歧的分组列(不一致纬度)对等候事件有关的数码开展联谊(聚合总结数据列满含:事件爆发次数,总等待时间,最小、最大、平均等待时间),注意:等待事件的搜罗效用有部分私下认可是禁止使用的,必要的时候能够由此setup_instruments和setup_objects表动态开启,等待事件总计表满含如下几张表:

2.3. performance_schema表的归类

admin@localhost : performance _schema 11:10:42> select * from objects_summary _global_by _type where SUM_TIMER_WAIT!=0G;

       Stage表首要含有3个表,events_stages_current,events_stages_history和events_stages_history_long,通过thread_id event_id能够独一分明一条记下。表中著录了现阶段线程所处的进行级别,由于能够通晓各样阶段的实践时间,由此通过stage表能够取得SQL在各类阶段消耗的日子。

admin@localhost : performance_schema 06:17:11> show tables like '%events_waits_summary%';

2.4. performance_schema轻易布署与应用

*************************** 1. row ***************************

THREAD_ID:线程ID
EVENT_ID:事件ID
END_EVENT_ID:刚结束的风浪ID
SOURCE:源码地方
TIMER_START, TIMER_END, TIMER_WAIT:事件始于/截止和等候的时日,单位为微秒(picoseconds)
NESTING_EVENT_ID:该事件对应的父事件ID
NESTING_EVENT_TYPE:父事件类型(STATEMENT, STAGE, WAIT)

-------------------------------------------------------

|导 语相当久从前,当本人还在尝试着系统地球科学习performance_schema的时候,通过在英特网各类寻找资料实行学习,但很缺憾,学习的功力并非很明显,相当多标称类似 "深入显出performance_schema" 的小说,基本上都是这种动不动就贴源码的风骨,然后深刻了随后却出不来了。对系统学习performance_schema的功用有限。

OBJECT_TYPE: TABLE

Statement Event表
      Statement表重要包蕴3个表,events_statements_current,events_statements_history和events_statements_history_long。通过thread_id event_id能够独一分明一条记下。Statments表只记录最顶层的乞求,SQL语句或是COMMAND,每条语句一行,对于嵌套的子查询大概存款和储蓄进程不会单独列出。event_name形式为statement/sql/*,或statement/com/*
SQL_TEXT:记录SQL语句
DIGEST:对SQL_TEXT做MD5爆发的叁九位字符串。如若为consumer表中向来不张开statement_digest选项,则为NULL。
DIGEST_TEXT:将讲话中值部分用问号代替,用于SQL语句归类。要是为consumer表中并未有张开statement_digest选项,则为NULL。
CURRENT_SCHEMA:暗中认可的多寡库名
OBJECT_SCHEMA,OBJECT_NAME,OBJECT_TYPE:保留字段,全体为NULL
ROWS_AFFECTED:影响的数额
ROWS_SENT:再次来到的记录数
ROWS_EXAMINED:读取的记录数据
CREATED_TMP_DISK_TABLES:成立物理不时表数目
CREATED_TMP_TABLES:创造一时表数目
SELECT_FULL_JOIN:join时,第三个表为全表扫描的数据
SELECT_FULL_RANGE_JOIN:join时,引用表接纳range格局扫描的数目
SELECT_RANGE:join时,第三个表采纳range格局扫描的多少
SELECT_SCAN:join时,第二个表位全表扫描的数量
SORT_ROWS:排序的笔录数据
NESTING_EVENT_ID,NESTING_EVENT_TYPE,保留字段,为NULL。

| Tables_in_performance_schema (%events_waits_summary%) |

当今,很欢快的告诉我们,大家依照 MySQL 官方文书档案加上我们的印证,整理了一份能够系统学习 performance_schema 的资料分享给大家,为了方便大家阅读,大家整理为了四个二种,一共7篇小说。上面,请跟随我们一齐起来performance_schema系统的上学之旅吧。

OBJECT_SCHEMA: xiaoboluo

Connection表
     Connection表记录了顾客端的音信,首要满含3张表:users,hosts和account表,accounts富含hosts和users的新闻。
USER:用户名
HOST:用户的IP

-------------------------------------------------------

正文首先,大致介绍了哪些是performance_schema?它能做什么样?

OBJECT_NAME: test

Summary表
    Summary表聚焦了各类维度的计算消息满含表维度,索引维度,会话维度,语句维度和锁维度的总括新闻。
(1).wait-summary表
events_waits_summary_global_by_event_name
现象:按等待事件类型聚合,每一种事件一条记下。
events_waits_summary_by_instance
地方:按等待事件目的聚合,同一种等待事件,恐怕有八个实例,各个实例有两样的内部存款和储蓄器地址,由此
event_name object_instance_begin唯一明确一条记下。
events_waits_summary_by_thread_by_event_name
地方:按每一个线程和事件来总结,thread_id event_name独一鲜明一条记下。
COUNT_STA凯雷德:事件计数
SUM_TIMER_WAIT:总的等待时间
MIN_TIMER_WAIT:最小等待时间
MAX_TIMER_WAIT:最大等待时间
AVG_TIMER_WAIT:平均等待时间

| events_waits_summary_by_account_by_event_name |

然后,简要介绍了哪些火速上手使用performance_schema的方法;

COUNT_STAR: 56

(2).stage-summary表
events_stages_summary_by_thread_by_event_name
events_stages_summary_global_by_event_name
与日前类似

| events_waits_summary_by_host_by_event_name |

最后,简介了performance_schema中由什么表组成,那一个表大约的机能是怎么。

SUM _TIMER_WAIT: 195829830101250

(3).statements-summary表
events_statements_summary_by_thread_by_event_name表和events_statements_summary_global_by_event_name表与前边类似。对于events_statements_summary_by_digest表,
FIRST_SEEN_TIMESTAMP:第七个语句实施的年月
LAST_SEEN_TIMESTAMP:最后三个说话试行的时间
现象:用于总计某一段时间内top SQL

| events_waits_summary_by_instance |

PS:本体系文章所采纳的数据库版本为 MySQL 官方 5.7.17版本

MIN _TIMER_WAIT: 2971125

(4).file I/O summary表
file_summary_by_event_name [按事件类型总计]
file_summary_by_instance [按实际文件总括]
场景:物理IO维度
FILE_NAME:具体文件名,举例:/u01/my3306/data/tcbuyer_0168/tc_biz_order_2695.ibd
EVENT_NAME:事件名,比如:wait/io/file/innodb/innodb_data_file
COUNT_STAR,SUM_TIMER_WAIT,MIN_TIMER_WAIT,AVG_TIMER_WAIT,MAX_TIMER_WAIT
统计IO操作
COUNT_READ,SUM_TIMER_READ,MIN_TIMER_READ,AVG_TIMER_READ,MAX_TIMER_READ, SUM_NUMBER_OF_BYTES_READ
统计读
COUNT_WRITE,SUM_TIMER_WRITE,MIN_TIMER_WRITE,AVG_TIMER_WRITE,MAX_TIMER_WRITE, SUM_NUMBER_OF_BYTES_WRITE
统计写
COUNT_MISC,SUM_TIMER_MISC,MIN_TIMER_MISC,AVG_TIMER_MISC,MAX_TIMER_MISC
总括其余IO事件,比如create,delete,open,close等

| events_waits_summary_by_thread_by_event_name |

|1、**什么是performance_schema**

AVG _TIMER_WAIT: 3496961251500

(5).Table I/O and Lock Wait Summaries-表
table_io_waits_summary_by_table
依据wait/io/table/sql/handler,聚合各样表的I/O操作,[逻辑IO]
COUNT_STAR,SUM_TIMER_WAIT,MIN_TIMER_WAIT,AVG_TIMER_WAIT,MAX_TIMER_WAIT
统计IO操作
COUNT_STAR,SUM_TIMER_WAIT,MIN_TIMER_WAIT,AVG_TIMER_WAIT,MAX_TIMER_WAIT
统计读
COUNT_WRITE,SUM_TIMER_WRITE,MIN_TIMER_WRITE,AVG_TIMER_WRITE, MAX_TIMER_WRITE
统计写
COUNT_FETCH,SUM_TIMER_FETCH,MIN_TIMER_FETCH,AVG_TIMER_FETCH, MAX_TIMER_FETCH
与读同样
COUNT_INSERT,SUM_TIMER_INSERT,MIN_TIMER_INSERT,AVG_TIMER_INSERT,MAX_TIMER_INSERT
INSERT总括,相应的还也有DELETE和UPDATE总结。

| events_waits_summary_by_user_by_event_name |

MySQL的performance schema 用于监察和控制MySQL server在贰个非常低档其他运转进度中的能源消耗、能源等待等情事,它富有以下特征:

MAX _TIMER_WAIT: 121025235946125

(6).table_io_waits_summary_by_index_usage
与table_io_waits_summary_by_table类似,按索引维度总计

| events_waits_summary_global_by_event_name |

  1. 提供了一种在数据库运转时实时检查server的其中进行情状的方法。performance_schema 数据库中的表使用performance_schema存储引擎。该数据库注重关切数据库运维进程中的质量相关的多少,与information_schema不同,information_schema首要关怀server运维进程中的元数据新闻
  2. performance_schema通过监视server的平地风波来促成监视server内部运营状态, “事件”正是server内部活动中所做的别的工作以及对应的年月消耗,利用那些音讯来判别server中的相关财富消耗在了哪个地方?一般的话,事件能够是函数调用、操作系统的等候、SQL语句试行的级差(如sql语句推行进度中的parsing 或 sorting阶段)大概全部SQL语句与SQL语句集结。事件的采撷可以低价的提供server中的相关存款和储蓄引擎对磁盘文件、表I/O、表锁等财富的联合调用新闻。
  3. performance_schema中的事件与写入二进制日志中的事件(描述数据修改的events)、事件安插调整程序(那是一种存款和储蓄程序)的轩然大波不相同。performance_schema中的事件记录的是server施行有些活动对少数财富的消耗、耗费时间、那个移动实施的次数等意况。
  4. performance_schema中的事件只记录在地头server的performance_schema中,其下的这么些表中数据爆发变化时不会被写入binlog中,也不会通过复制机制被复制到别的server中。
  5. 脚下活蹦乱跳事件、历史事件和事件摘要相关的表中记录的音信。能提供有些事件的奉行次数、使用时间长度。从而可用以深入分析有个别特定线程、特定指标(如mutex或file)相关联的移位。
  6. PERFORMANCE_SCHEMA存款和储蓄引擎使用server源代码中的“质量评定点”来落到实处事件数量的搜罗。对于performance_schema达成机制自己的代码没有相关的单身线程来检查实验,那与其它职能(如复制或事件布置程序)差别
  7. 征集的风浪数量存款和储蓄在performance_schema数据库的表中。这一个表能够利用SELECT语句询问,也足以利用SQL语句更新performance_schema数据库中的表记录(如动态修改performance_schema的setup_*开端的多少个布局表,但要注意:配置表的改造会立时生效,那会影响多少收罗)
  8. performance_schema的表中的数据不会长久化存款和储蓄在磁盘中,而是保存在内部存款和储蓄器中,一旦服务珍视启,那些数量会甩掉(蕴含配置表在内的全体performance_schema下的持有数据)
  9. MySQL援助的装有平台南事件监控效率都可用,但不相同平高雄用于总括事件时间支付的计时器类型恐怕集会场全体差异。

1 row in set (0.00 sec)

(7).table_lock_waits_summary_by_table
汇集了表锁等待事件,富含internal lock 和 external lock。
internal lock通过SQL层函数thr_lock调用,OPERATION值为:
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

-------------------------------------------------------

performance_schema完毕机制服从以下设计指标:

从表中的笔录内容能够观察,依据库xiaoboluo下的表test举行分组,计算了表相关的守候事件调用次数,总结、最小、平均、最大延迟时间新闻,利用那一个消息,大家得以大致领悟InnoDB中表的探问成效排行总括景况,一定水准上海电影制片厂响了对存款和储蓄引擎接口调用的作用。

external lock则通过接口函数handler::external_lock调用存款和储蓄引擎层,
OPERATION列的值为:
read external
write external

6rows inset ( 0. 00sec)

  1. 启用performance_schema不会导致server的一举一动产生变化。举例,它不会转移线程调整机制,不会促成查询推行布置(如EXPLAIN)产生变化
  2. 启用performance_schema之后,server会持续不间断地监测,开销十分小。不会促成server不可用
  3. 在该兑现机制中平昔不扩充新的第一字或讲话,深入分析器不会扭转
  4. 即使performance_schema的监测机制在其间对某件事件奉行监测退步,也不会潜移暗化server平常运作
  5. 若果在开头搜集事件数量时碰着有别的线程正在针对那么些事件消息进行询问,那么查询会优先执行事件数量的募集,因为事件数量的募集是二个持续不断的进度,而追寻(查询)这个事件数量仅仅只是在须求查阅的时候才开展检索。也大概有个别事件数量长久都不会去找寻
  6. 急需很轻松地加多新的instruments监测点
  7. instruments(事件访问项)代码版本化:就算instruments的代码发生了转移,旧的instruments代码还足以承接做事。
  8. 留意:MySQL sys schema是一组对象(包涵有关的视图、存款和储蓄进程和函数),能够低价地走访performance_schema采摘的多寡。同期搜寻的多寡可读性也更加高(举例:performance_schema中的时间单位是微秒,经过sys schema查询时会转变为可读的us,ms,s,min,hour,day等单位),sys schem在5.7.x本子暗中认可安装

2.表I/O等待和锁等待事件总结

(8).Connection Summaries表
events_waits_summary_by_account_by_event_name
events_waits_summary_by_user_by_event_name
events_waits_summary_by_host_by_event_name

我们先来拜候那个表中著录的总计音讯是什么样样子的。

|2、performance_schema使用便捷入门

与objects_summary_global_by_type 表总括音信类似,表I/O等待和锁等待事件总结音信更加精致,细分了各类表的增加和删除改查的施行次数,总等待时间,最小、最大、平均等待时间,以至精细到某些索引的增加和删除改查的守候时间,表IO等待和锁等待事件instruments(wait/io/table/sql/handler和wait/lock/table/sql/handler )暗许开启,在setup_consumers表中无实际的相应配置,默许表IO等待和锁等待事件计算表中就能够总计有关事件音讯。包括如下几张表:

events_stages_summary_by_account_by_event_name
events_stages_summary_by_user_by_event_name
events_stages_summary_by_host_by_event_name

# events_waits_summary_by_account_by_event_name表

最近,是不是认为上边的介绍内容太过清淡呢?假使你那样想,那就对了,作者那儿攻读的时候也是那样想的。但今后,对于如何是performance_schema那几个主题素材上,比起更早在此之前更清晰了吧?若是你还尚无筹划要放弃读书本文的话,那么,请随行大家开始步向到"边走边唱"环节呢!

admin@localhost : performance_schema 06:50:03> show tables like '%table%summary%';

events_statements_summary_by_account_by_event_name
events_statements_summary_by_user_by_event_name
events_statements_summary_by_host_by_event_name

root@localhost : performance _schema 11:07:09> select * from events_waits _summary_by _account_by _event_name limit 1G

2.1反省当前数据库版本是或不是援助

------------------------------------------------

(9).socket-summaries表
socket_summary_by_instance
socket_summary_by_event_name

*************************** 1. row ***************************

performance_schema被视为存款和储蓄引擎。假若该外燃机可用,则应该在INFORMATION_SCHEMA.ENGINES表或SHOW ENGINES语句的出口中都能够寓目它的SUPPORT值为YES,如下:

| Tables_in_performance_schema (%table%summary%) |

其它表
performance_timers: 系统援救的总结时间单位
threads: 监视服务端的此时此刻运作的线程

USER: NULL

使用 INFORMATION_SCHEMA.ENGINES表来查询你的数据库实例是或不是协理INFORMATION_SCHEMA引擎

------------------------------------------------

HOST: NULL

qogir_env@localhost : performance_schema 02:41:41> SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE ='PERFORMANCE_SCHEMA';

| table_io_waits_summary_by_index_usage |# 依照每个索引进行总计的表I/O等待事件

EVENT _NAME: wait/synch/mutex/sql/TC_LOG _MMAP::LOCK_tc

-------------------- --------- -------------------- -------------- ------ ------------

| table_io_waits_summary_by_table |# 依据各类表展开总结的表I/O等待事件

COUNT_STAR: 0

| ENGINE |SUPPORT | COMMENT |TRANSACTIONS | XA |SAVEPOINTS |

| table_lock_waits_summary_by_table |# 遵照每种表实行计算的表锁等待事件

SUM _TIMER_WAIT: 0

-------------------- --------- -------------------- -------------- ------ ------------

------------------------------------------------

MIN _TIMER_WAIT: 0

|PERFORMANCE_SCHEMA | YES |Performance Schema | NO |NO | NO |

3rows inset ( 0. 00sec)

AVG _TIMER_WAIT: 0

-------------------- --------- -------------------- -------------- ------ ------------

咱俩先来看看表中著录的总结信息是怎样样子的。

MAX _TIMER_WAIT: 0

1row inset (0.00sec)

# table_io_waits_summary_by_index_usage表

1 row in set (0.00 sec)

利用show命令来询问你的数据库实例是还是不是扶助INFORMATION_SCHEMA引擎

admin@localhost : performance _schema 01:55:49> select * from table_io _waits_summary _by_index _usage where SUM_TIMER_WAIT!=0G;

# events_waits_summary_by_host_by_event_name表

qogir_env@localhost : performance_schema 02:41:54> show engines;

*************************** 1. row ***************************

root@localhost : performance _schema 11:07:14> select * from events_waits _summary_by _host_by _event_name limit 1G

-------------------- --------- ---------------------------------------------------------------- -------------- ------ ------------

OBJECT_TYPE: TABLE

*************************** 1. row ***************************

| Engine |Support | Comment

OBJECT_SCHEMA: xiaoboluo

HOST: NULL

|Transactions | XA |Savepoints |

OBJECT_NAME: test

EVENT _NAME: wait/synch/mutex/sql/TC_LOG _MMAP::LOCK_tc

-------------------- --------- ---------------------------------------------------------------- -------------- ------ ------------

INDEX_NAME: PRIMARY

COUNT_STAR: 0

......

COUNT_STAR: 1

SUM _TIMER_WAIT: 0

|PERFORMANCE_SCHEMA | YES |Performance Schema

SUM _TIMER_WAIT: 56688392

MIN _TIMER_WAIT: 0

| NO |NO | NO |

MIN _TIMER_WAIT: 56688392

AVG _TIMER_WAIT: 0

......

AVG _TIMER_WAIT: 56688392

MAX _TIMER_WAIT: 0

9rows inset (0.00sec)

MAX _TIMER_WAIT: 56688392

1 row in set (0.00 sec)

当大家来看PELANDFORMANCE_SCHEMA 对应的Support 字段输出为YES时就象征大家脚下的数据库版本是永葆performance_schema的。但知道我们的实例协助performance_schema引擎就足以选取了啊?NO,很缺憾,performance_schema在5.6及其此前的本子中,暗中同意未有启用,从5.7会同之后的版本才修改为私下认可启用。未来,大家来探望哪些设置performance_schema暗许启用吧!

COUNT_READ: 1

# events_waits_summary_by_instance表

2.2. 启用performance_schema

SUM _TIMER_READ: 56688392

root@localhost : performance _schema 11:08:05> select * from events_waits _summary_by_instance limit 1G

从上文中大家早就明白,performance_schema在5.7.x及其以上版本中暗中同意启用(5.6.x及其以下版本暗中认可关闭),假使要显式启用或关闭时,大家必要动用参数performance_schema=ON|OFF设置,并在my.cnf中开展布局:

MIN _TIMER_READ: 56688392

*************************** 1. row ***************************

[mysqld]

AVG _TIMER_READ: 56688392

EVENT_NAME: wait/synch/mutex/mysys/THR_LOCK_heap

performance_schema= ON# 注意:该参数为只读参数,须求在实例运行在此之前设置才生效

MAX _TIMER_READ: 56688392

OBJECT _INSTANCE_BEGIN: 32492032

mysqld运维之后,通过如下语句查看performance_schema是不是启用生效(值为ON表示performance_schema已初始化成功且能够接纳了。假使值为OFF表示在启用performance_schema时产生一些错误。能够查看错误日志举办排查):

......

COUNT_STAR: 0

qogir_env@localhost : performance_schema 03:13:10> SHOW VARIABLES LIKE 'performance_schema';

1 row in set (0.00 sec)

SUM _TIMER_WAIT: 0

-------------------- -------

# table_io_waits_summary_by_table表

MIN _TIMER_WAIT: 0

| Variable_name |Value |

admin@localhost : performance _schema 01:56:16> select * from table_io _waits_summary _by_table where SUM _TIMER_WAIT!=0G;

AVG _TIMER_WAIT: 0

-------------------- -------

*************************** 1. row ***************************

MAX _TIMER_WAIT: 0

|performance_schema | ON |

OBJECT_TYPE: TABLE

1 row in set (0.00 sec)

-------------------- -------

OBJECT_SCHEMA: xiaoboluo

# events_waits_summary_by_thread_by_event_name表

1row inset (0.00sec)

OBJECT_NAME: test

root@localhost : performance _schema 11:08:23> select * from events_waits _summary_by _thread_by _event_name limit 1G

近些日子,你可以在performance_schema下使用show tables语句也许通过查询 INFORMATION_SCHEMA.TABLES表中performance_schema引擎相关的元数据来通晓在performance_schema下存在着什么样表:

COUNT_STAR: 1

*************************** 1. row ***************************

通过从INFORMATION_SCHEMA.tables表查询有哪些performance_schema引擎的表:

............

THREAD_ID: 1

qogir_env@localhost : performance_schema 03:13:22> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

1 row in set (0.00 sec)

EVENT _NAME: wait/synch/mutex/sql/TC_LOG _MMAP::LOCK_tc

WHERE TABLE_SCHEMA ='performance_schema'andengine='performance_schema';

# table_lock_waits_summary_by_table表

COUNT_STAR: 0

------------------------------------------------------

admin@localhost : performance _schema 01:57:20> select * from table_lock _waits_summary _by_table where SUM _TIMER_WAIT!=0G;

SUM _TIMER_WAIT: 0

| TABLE_NAME |

*************************** 1. row ***************************

MIN _TIMER_WAIT: 0

------------------------------------------------------

OBJECT_TYPE: TABLE

AVG _TIMER_WAIT: 0

| accounts |

OBJECT_SCHEMA: xiaoboluo

MAX _TIMER_WAIT: 0

| cond_instances |

OBJECT_NAME: test

1 row in set (0.00 sec)

......

............

# events_waits_summary_by_user_by_event_name表

| users |

COUNT_READ_NORMAL: 0

root@localhost : performance _schema 11:08:36> select * from events_waits _summary_by _user_by _event_name limit 1G

| variables_by_thread |

SUM_TIMER_READ_NORMAL: 0

*************************** 1. row ***************************

------------------------------------------------------

MIN_TIMER_READ_NORMAL: 0

USER: NULL

87rows inset (0.00sec)

AVG_TIMER_READ_NORMAL: 0

EVENT _NAME: wait/synch/mutex/sql/TC_LOG _MMAP::LOCK_tc

直接在performance_schema库下选拔show tables语句来查阅有哪些performance_schema引擎表:

MAX_TIMER_READ_NORMAL: 0

COUNT_STAR: 0

qogir_env@localhost : performance_schema 03:20:43> use performance_schema

COUNT _READ_WITH _SHARED_LOCKS: 0

SUM _TIMER_WAIT: 0

Database changed

SUM _TIMER_READ _WITH_SHARED_LOCKS: 0

MIN _TIMER_WAIT: 0

qogir_env@localhost : performance_schema 03:21:06> show tables from performance_schema;

MIN _TIMER_READ _WITH_SHARED_LOCKS: 0

AVG _TIMER_WAIT: 0

------------------------------------------------------

AVG _TIMER_READ _WITH_SHARED_LOCKS: 0

MAX _TIMER_WAIT: 0

| Tables_in_performance_schema |

MAX _TIMER_READ _WITH_SHARED_LOCKS: 0

1 row in set (0.00 sec)

------------------------------------------------------

......

# events_waits_summary_global_by_event_name表

| accounts |

1 row in set (0.00 sec)

root@localhost : performance _schema 11:08:53> select * from events_waits _summary_global _by_event_name limit 1G

| cond_instances |

从上面表中的笔录新闻大家得以见到,table_io_waits_summary_by_index_usage表和table_io_waits_summary_by_table有着近乎的总计列,但table_io_waits_summary_by_table表是包涵整体表的增加和删除改查等待事件分类总计,table_io_waits_summary_by_index_usage区分了每一种表的目录的增加和删除改查等待事件分类总计,而table_lock_waits_summary_by_table表总括纬度类似,但它是用于计算增加和删除改核对应的锁等待时间,并非IO等待时间,这一个表的分组和总计列含义请我们自行抛砖引玉,这里不再赘言,上边针对那三张表做一些须要的证实:

*************************** 1. row ***************************

......

table_io_waits_summary_by_table表:

EVENT _NAME: wait/synch/mutex/sql/TC_LOG _MMAP::LOCK_tc

| users |

该表允许利用TRUNCATE TABLE语句。只将总括列复位为零,实际不是去除行。对该表试行truncate还恐怕会隐式truncate table_io_waits_summary_by_index_usage表

COUNT_STAR: 0

| variables_by_thread |

table_io_waits_summary_by_index_usage表:

SUM _TIMER_WAIT: 0

------------------------------------------------------

按照与table_io_waits_summary_by_table的分组列 INDEX_NAME列举行分组,INDEX_NAME有如下三种:

MIN _TIMER_WAIT: 0

87rows inset (0.00sec)

·借使接纳到了目录,则这里突显索引的名字,假设为P奥迪Q3IMA瑞虎Y,则意味着表I/O使用到了主键索引

AVG _TIMER_WAIT: 0

前段时间,大家通晓了在 MySQL 5.7.17 版本中,performance_schema 下一共有87张表,那么,那87帐表都以寄存在什么数据的呢?大家如何选用他们来查询我们想要查看的数额吧?先别发急,我们先来看看那些表是怎么分类的。

·假使值为NULL,则意味着表I/O未有选择到目录

MAX _TIMER_WAIT: 0

2.3. performance_schema表的分类

·要是是插入操作,则不能够使用到目录,此时的总括值是依据INDEX_NAME = NULL计算的

1 row in set (0.00 sec)

performance_schema库下的表能够依据监视不一致的纬度举办了分组,举个例子:或依据分歧数据库对象开展分组,或依据差异的平地风波类型举行分组,或在服从事件类型分组之后,再进一步遵照帐号、主机、程序、线程、客商等,如下:

该表允许行使TRUNCATE TABLE语句。只将总计列重新设置为零,并非删除行。该表施行truncate时也会隐式触发table_io_waits_summary_by_table表的truncate操作。别的利用DDL语句更动索引结构时,会导致该表的有所索引总结音讯被复位

从地点表中的演示记录新闻中,我们能够见到:

依据事件类型分组记录品质事件数量的表

table_lock_waits_summary_by_table表:

各样表皆有各自的三个或八个分组列,以明确怎么着聚合事件音信(全部表都有EVENT_NAME列,列值与setup_instruments表中NAME列值对应),如下:

言辞事件记录表,那一个表记录了讲话事件消息,当前说话事件表events_statements_current、历史语句事件表events_statements_history和长语句历史事件表events_statements_history_long、以及汇集后的摘要表summary,在那之中,summary表还足以依赖帐号(account),主机(host),程序(program),线程(thread),顾客(user)和大局(global)再开展分割)

该表的分组列与table_io_waits_summary_by_table表相同

events_waits_summary_by_account_by_event_name表:按照列EVENT_NAME、USE哈弗、HOST举办分组事件音信

qogir_env@localhost : performance_schema 03:51:36> show tables like 'events_statement%';

该表包罗关于内部和外界锁的音讯:

events_waits_summary_by_host_by_event_name表:按照列EVENT_NAME、HOST举行分组事件消息

----------------------------------------------------

·里头锁对应SQL层中的锁。是透过调用thr_lock()函数来完毕的。(官方手册上说有三个OPERATION列来不相同锁类型,该列有效值为: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。但在该表的概念上并未看出该字段)

events_waits_summary_by_instance表:按照列EVENT_NAME、OBJECT_INSTANCE_BEGIN进行分组事件讯息。要是七个instruments(event_name)成立有八个实例,则每种实例都有着独一的OBJECT_INSTANCE_BEGIN值,因而各个实例会议及展览开单独分组

| Tables_in_performance_schema (%statement%) |

·外表锁对应存储引擎层中的锁。通过调用handler::external_lock()函数来达成。(官方手册上说有三个OPERATION列来区分锁类型,该列有效值为:read external、write external。但在该表的定义上并从未看出该字段)

events_waits_summary_by_thread_by_event_name表:按照列THREAD_ID、EVENT_NAME实行分组事件音信

----------------------------------------------------

该表允许行使TRUNCATE TABLE语句。只将计算列重新载入参数为零,并非去除行。

events_waits_summary_by_user_by_event_name表:按照列EVENT_NAME、USEENCORE进行分组事件信息

| events_statements_current |

3.文件I/O事件总括

events_waits_summary_global_by_event_name表:按照EVENT_NAME列实行分组事件音信

| events_statements_history |

文件I/O事件计算表只记录等待事件中的IO事件(不带有table和socket子种类),文件I/O事件instruments暗中认可开启,在setup_consumers表中无具体的相应配置。它饱含如下两张表:

全部表的总括列(数值型)都为如下几个:

| events_statements_history_long |

admin@localhost : performance_schema 06:48:12> show tables like '%file_summary%';

COUNT_STAOdyssey:事件被施行的数码。此值包含具备事件的实行次数,须要启用等待事件的instruments

| events_statements_summary_by_account_by_event_name |

-----------------------------------------------

SUM_TIMER_WAIT:总括给定计时事件的总等待时间。此值仅针对有计时效应的平地风波instruments或开启了计时成效事件的instruments,借使有些事件的instruments不补助计时依然未有拉开计时功用,则该字段为NULL。别的xxx_TIMER_WAIT字段值类似

| events_statements_summary_by_digest |

| Tables_in_performance_schema (%file_summary%) |

MIN_TIMER_WAIT:给定计时事件的矮小等待时间

| events_statements_summary_by_host_by_event_name |

-----------------------------------------------

AVG_TIMER_WAIT:给定计时事件的平均等待时间

| events_statements_summary_by_program |

| file_summary_by_event_name |

MAX_TIMER_WAIT:给定计时事件的最大等待时间

| events_statements_summary_by_thread_by_event_name |

| file_summary_by_instance |

PS:等待事件总结表允许行使TRUNCATE TABLE语句。

| events_statements_summary_by_user_by_event_name |

-----------------------------------------------

实践该语句时有如下行为:

| events_statements_summary_global_by_event_name |

2rows inset ( 0. 00sec)

对于未依据帐户、主机、客户聚焦的总括表,truncate语句会将总结列值重新设置为零,实际不是去除行。

----------------------------------------------------

两张表中著录的故事情节很附近:

对此依据帐户、主机、客商聚焦的计算表,truncate语句会删除已先河连接的帐户,主机或顾客对应的行,并将别的有再而三的行的计算列值重新设置为零(实地衡量跟未根据帐号、主机、客商聚集的总括表一样,只会被重新恢复设置不会被去除)。

11rows inset (0.00sec)

·file_summary_by_event_name:根据种种事件名称进行总结的文书IO等待事件

别的,遵照帐户、主机、客商、线程聚合的各类等待事件总结表或许events_waits_summary_global_by_event_name表,如果借助的连接表(accounts、hosts、users表)实施truncate时,那么重视的这几个表中的总括数据也会同时被隐式truncate 。

等待事件记录表,与话语事件类型的相关记录表类似:

·file_summary_by_instance:遵照各个文件实例(对应现实的各样磁盘文件,举例:表sbtest1的表空间文件sbtest1.ibd)进行总括的文书IO等待事件

注意:那一个表只针对等候事件音信进行总计,即蕴含setup_instruments表中的wait/%始发的采撷器 idle空闲搜聚器,每种等待事件在种种表中的总计记录行数必要看怎么分组(举个例子:根据客商分组计算的表中,有稍许个活泼客商,表中就能有微微条同样收集器的记录),其他,总计计数器是还是不是见效还亟需看setup_instruments表中相应的等候事件搜聚器是不是启用。

qogir_env@localhost : performance_schema 03:53:51> show tables like 'events_wait%';

大家先来拜见表中著录的统计音信是怎么样样子的。

| 阶段事件总括表

-----------------------------------------------

# file_summary_by_event_name表

performance_schema把阶段事件计算表也依照与等待事件总结表类似的准则实行分拣聚合,阶段事件也许有一对是私下认可禁止使用的,一部分是翻开的,阶段事件总计表包涵如下几张表:

| Tables_in_performance_schema (%wait%) |

admin@localhost : performance _schema 11:00:44> select * from file_summary _by_event _name where SUM_TIMER _WAIT !=0 and EVENT_NAME like '%innodb%' limit 1G;

admin@localhost : performance_schema 06:23:02> show tables like '%events_stages_summary%';

-----------------------------------------------

*************************** 1. row ***************************

--------------------------------------------------------

| events_waits_current |

EVENT_NAME: wait/io/file/innodb/innodb_data_file

| Tables_in_performance_schema (%events_stages_summary%) |

| events_waits_history |

COUNT_STAR: 802

--------------------------------------------------------

| events_waits_history_long |

SUM_TIMER_WAIT: 412754363625

| events_stages_summary_by_account_by_event_name |

| events_waits_summary_by_account_by_event_name |

MIN_TIMER_WAIT: 0

| events_stages_summary_by_host_by_event_name |

| events_waits_summary_by_host_by_event_name |

AVG_TIMER_WAIT: 514656000

| events_stages_summary_by_thread_by_event_name |

| events_waits_summary_by_instance |

MAX_TIMER_WAIT: 9498247500

| events_stages_summary_by_user_by_event_name |

| events_waits_summary_by_thread_by_event_name |

COUNT_READ: 577

| events_stages_summary_global_by_event_name |

| events_waits_summary_by_user_by_event_name |

SUM_TIMER_READ: 305970952875

--------------------------------------------------------

本文由凤凰彩票平台手机版发布于凤凰彩票官方版app下载技术,转载请注明出处:performance_schema全方位介绍,事件计算

关键词: