www.27111.com_澳门新葡亰平台官网【客户端下载】
做最好的网站
当前位置: www.27111.com > 互联网平台 > 正文

schema全方位介绍》中

时间:2019-09-06 02:21来源:互联网平台
原标题:事件记录 | performance_schema全方位介绍(三) 导语 在上一篇 《配置详解 |performance_schema全方位介绍》中,大家详细介绍了performance_schema的安顿表,持之以恒读完的是真爱,也恭

原标题:事件记录 | performance_schema全方位介绍(三)

图片 1

导语

在上一篇 《配置详解 | performance_schema全方位介绍》中,大家详细介绍了performance_schema的安顿表,持之以恒读完的是真爱,也恭喜大家翻过了一座海棠山。相信有那个人读完之后,已经十万火急的想要蓄势待发了,前几天将带领我们一块踏上漫天掩地第三篇的道路(全系共6个篇章),在这一期里,大家将为我们无所不至授课performance_schema中事件原来记录表。上边,请跟随我们联合最早performance_schema系统的上学之旅吧。

等待事件表

一般说来,大家在蒙受品质瓶颈时,假诺别的的点子难以寻找品质瓶颈的时候(举个例子:硬件负载不高、SQL优化和库表结构优化都不便见效的时候),大家平时须要借助等待事件来展开深入分析,寻觅在MySQL Server内部,到底数据库响应慢是慢在哪个地方。

等候事件记录表富含三张表,那些表记录了近来与近年来在MySQL实例中生出了什么等待事件,时间消耗是有一点点。

  • events_waits_current表:记录当前正值实施的等待事件的,各样线程只记录1行记录
  • events_waits_history表:记录已经推行完的近期的等候事件历史,私下认可各种线程只记录10行记录
  • events_waits_history_long表:记录已经执行完的近年的等候事件历史,私下认可所无线程的总记录行数为一千0行

要小心:等待事件相关安排中,setup_instruments表中多方面包车型地铁等候事件instruments都未曾拉开(IO相关的等候事件instruments暗中认可大多数已开启),setup_consumers表中waits相关的consumers配置暗中同意未有开启

events_waits_current 表

events_waits_current表满含当前的等待事件音信,每一种线程只显示一行如今监视的守候事件的眼下气象

在具有富含等待事件行的表中,events_waits_current表是最基础的多少出自。其余富含等待事件数据表在逻辑上是源于events_waits_current表中的当前风浪新闻(汇总表除此之外)。举个例子,events_waits_history和events_waits_history_long表中的数据是events_waits_current表数据的一个小集结汇总(具体寄放多少行数据集结有个别的变量支配)

表记录内容示例(那是一个施行select sleep(100);语句的线程等待事件消息)

root@localhost : performance _schema 12:15:03> select * from events_waits _current where EVENT_NAME='wait/synch/cond/sql/Item _func_sleep::cond'G;

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

THREAD_ID: 46

EVENT_ID: 140

END_EVENT_ID: NULL

EVENT_NAME: wait/synch/cond/sql/Item_func_sleep::cond

SOURCE: item_func.cc:5261

TIMER_START: 14128809267002592

TIMER_END: 14132636159944419

TIMER_WAIT: 3826892941827

SPINS: NULL

OBJECT_SCHEMA: NULL

OBJECT_NAME: NULL

INDEX_NAME: NULL

OBJECT_TYPE: NULL

OBJECT _INSTANCE_BEGIN: 140568905519072

NESTING _EVENT_ID: 116

NESTING _EVENT_TYPE: STATEMENT

OPERATION: timed_wait

NUMBER _OF_BYTES: NULL

FLAGS: NULL

1 row in set (0.00 sec)

下边包车型大巴出口结果中,TIMERAV4_WAIT字段即表示该事件的年华支出,单位是皮秒,在其实的行使场景中,大家能够动用该字段音信实行倒序排序,以便寻觅时间支付最大的等候事件。

events_waits_current表完整的字段含义如下:

THREAD_ID,EVENT_ID:与事件波及的线程ID和当前风云ID。THREAD_ID和EVENT_ID值构成了该事件音信行的举世无双标记(不会有再次的THREAD_ID EVENT_ID值)

END_EVENT_ID:当叁个事变正在施行时该列值为NULL,当二个风云施行完成时把该事件的ID更新到该列

EVENT_NAME:产惹事件的instruments名称。该名称来自setup_instruments表的NAME字段值

SOURCE:发生该事件的instruments所在的源文件名称以及检查测试到该事件产生点的代码行号。您能够查看源代码来规定涉及的代码。比如,若是互斥锁、锁被打断,您可以检查发生这种境况的上下文蒙受

TIMER_START,TIMER_END,TIMER_WAIT:事件的时光音讯。单位阿秒(万亿分之一秒)。 TIMEPAJERO_START和TIMER_END值表示事件早先和终结时间。 TIMEWrangler_WAIT是事件经过岁月(即事件推行了多久)

  • 一经事件未推行到位,则TIME奔驰M级_END为最近电磁关照计时器时间值(当前时刻),TIME途胜_WAIT为近些日子结束所通过的岁月(TIME奥迪Q5_END - TIMER_START)
  • 假如搜集该事件的instruments配置项TIMED = NO,则不会征集事件的时日消息,TIMEEscort_START,TIMER_END和TIMER_WAIT在这种状态下均记录为NULL

SPINS:对于互斥量和自旋次数。借使该列值为NULL,则表示代码中未有选拔自旋只怕说自旋未有被监督起来

OBJECT_SCHEMA,OBJECT_NAME,OBJECT_TYPE,OBJECT_INSTANCE_BEGIN:那些列标志了二个正在被实施的靶子,所以这一个列记录的新闻意义须要看对象是如何项目,上面遵照分化指标类型分别对这么些列的意思进行表明:

* 对于联合对象(cond,mutex,rwlock):

* 1)、OBJECT_SCHEMA,OBJECT_NAME和OBJECT_TYPE列值都为NULL

* 2)、OBJECT_INSTANCE_BEGIN列是内部存款和储蓄器中同步对象的地方。OBJECT_INSTANCE_BEGIN除了不一样的值标识分裂的对象之外,其值本人并没风趣。但OBJECT_INSTANCE_BEGIN值可用于调节和测量试验。比方,它能够与GROUP BY OBJECT_INSTANCE_BEGIN子句一同利用来查阅1,000个互斥体(比如:敬爱1,000个页或数据块)上的载重是或不是是均匀分布依旧发生了一些瓶颈。假诺在日记文件或其余调节和测量试验、质量工具中见到与该语句查看的结果中有一样的靶子地址,那么,在您深入分析质量难点时,能够把这一个语句查看到的音讯与另外工具查看到的音信涉及起来。

* 对于文本I/O对象:

* 1)、OBJECT_SCHEMA列值为NULL

* 2)、OBJECT_NAME列是文本名

* 3)、OBJECT_TYPE列为FILE

* 4)、OBJECT_INSTANCE_BEGIN列是内存中的地址,解释同上

* 对于套接字对象:

* 1)、OBJECT_NAME列是套接字的IP:PORT值

* 2)、OBJECT_INSTANCE_BEGIN列是内部存款和储蓄器中的地方,解释同上

* 对于表I/O对象:

* 1)、OBJECT_SCHEMA列是含有该表的库名称

* 2)、OBJECT_NAME列是表名

* 3)、OBJECT_TYPE列值对于基表大概TEMPORAENVISIONY TABLE有的时候表,该值是table,注意:对于在join查询中select_type为DEKugaIVED,subquery等的表恐怕不记录事件音信也不开展计算

* 4)、OBJECT_INSTANCE_BEGIN列是内部存款和储蓄器中的地址,解释同上

INDEX_NAME:表示使用的目录的名目。PRIMAEvoqueY代表使用到了主键。 NULL表示向来不动用索引

NESTING_EVENT_ID:表示该行消息中的EVENT_ID事件是嵌套在哪些事件中,即父事件的EVENT_ID

NESTING_EVENT_TYPE:表示该行信息中的EVENT_ID事件嵌套的平地风波类型。有效值有:TRANSACTION,STATEMENT,STAGE或WAIT,即父事件的事件类型,借使为TRANSACTION则要求到业务事件表中找对应NESTING_EVENT_ID值的风浪,其余门类同理

OPERATION:施行的操作类型,如:lock、read、write、timed_wait

NUMBER_OF_BYTES:操作读取或写入的字节数或行数。对于文本IO等待,该列值表示字节数;对于表I/O等待(wait/io/table/sql/handler instruments的平地风波),该列值表示行数。假诺值大于1,则意味该事件对应三个批量I/O操作。以下分别对单个表IO和批量表IO的分别张开描述:

  • MySQL的join查询利用嵌套循环完毕。performance_schema instruments的意义是在join查询中提供对各样表的扫视行数和执行时间开展总括。示例:join查询语句:SELECT … FROM t1 JOIN t2 ON … JOIN t3 ON …,要是join顺序是t1,t2,t3
  • 在join查询中,八个表在询问时与其他表展开联合查询未来,该表的扫视行数可能扩张也恐怕回降,举例:要是t3表扇出超越1,则大多数row fetch操作都以针对t3表,要是join查询从t1表访谈10行记录,然后使用t1表驱动查询t2表,t1表的每一行都会扫描t2表的20行记录,然后采取t2表驱动查询t3表,t2表的每一行都会扫描t3表的30行记录,那么,在应用单行输出时,instruments总括操作的平地风波新闻总行数为:10 (10 * 20) (10 * 20 * 30)= 6210
  • 通过对表中央银行扫描时的instruments总结操作进行联谊(即,每种t1和t2的围观行数在instruments总计中得以算作七个批量结合),那样就足以削减instruments计算操作的数目。通过批量I/O输出形式,performance_schema每一次对最内层表t3的扫视收缩为二个风浪计算音讯并非每一行扫描都生成叁个轩然大波音讯,此时对于instruments计算操作的轩然大波行数量减少到:10 (10 * 20) (10 * 20)= 410,那样在该join查询中对此performance_schema中的行总括操作就收缩了93%,批量出口攻略通过削减输骑行数量来显着减弱表I/O的performance_schema总括费用。不过相对于每行数据都单身推行总计操作,会损失对时间总计的准确度。在join查询中,批量I/O计算的小时富含用于连接缓冲、聚合和再次来到行到客商端的操作所费用的时间(即就是整套join语句的进行时间)

FLAGS:留作未来利用

PS:events_waits_current表允许使用TRUNCATE TABLE语句

events_waits_history 表

events_waits_history表满含各类线程前段时间的N个等待事件。 在server运行时,N的值会自动调解。 倘若要显式设置这些N大小,能够在server运行在此以前调节系统参数performance_schema_events_waits_history_size的值。 等待事件需求实行实现时才被增加到events_waits_history表中(未有终止时保留在events_waits_current表)。当增加新事件到events_waits_history表时,倘诺该表已满,则会抛弃每一种线程较旧的平地风波

events_waits_history与events_waits_current表定义同样

PS:允许试行TRUNCATE TABLE语句

events_waits_history_long 表

events_waits_history_long表满含近年来的N个等待事件(所无线程的风浪)。在server运营时,N的值会自动调节。 若是要显式设置那些N大小,能够在server运维在此以前调节系统参数

performance_schema_events_waits_history_long_size的值。等待事件供给施行完结时才会被增添到events_waits_history_long表中(未有截至时保留在events_waits_current表),当增添新事件到events_waits_history_long表时,假若该表已满,则会扬弃该表中较旧的风云。

events_waits_history_long与events_waits_current表结构同样

PS:允许使用TRUNCATE TABLE语句

品级事件表

品级事件记录表与等待事件记录表同样,也是有三张表,那些表记录了脚下与那二日在MySQL实例中产生了什么样阶段事件,时间消耗是稍微。阶段指的是语句实行进程中的步骤,举个例子:parsing 、opening tables、filesort操作等。

在既往我们查阅语句实施的品级状态,日常使用SHOW PROCESSLIST语句或询问INFORMATION_SCHEMA.PROCESSLIST表来获取,但processlist方式能够查询到的新闻相比有限且时而即逝,我们平日供给组合profiling效能来一发总计分析语句推行的逐条阶段的付出等,将来,大家无需那样辛劳,直接行使performance_schema的阶段事件就不只能够查询到具备的言语实践等级,也得以查询到各样阶段对应的开支,因为是记录在表中,所以更可以动用SQL语句对这么些多少开展排序、总括等操作

要注意:阶段事件相关配置中,setup_instruments表中stage/开首的大部instruments配置私下认可未有开启(少数stage/起头的instruments除了这几个之外,如DDL语句实施进度的stage/innodb/alter*始发的instruments暗中认可开启的),setup_consumers表中stages相关的consumers配置私下认可未有打开

events_stages_current 表

events_stages_current表包括当前阶段事件的监督信息,每一个线程一行记录呈现线程正在施行的stage事件的情形

在蕴藏stage事件记录的表中,events_stages_current是基准表,满含stage事件记录的另外表(如:events_stages_history和events_stages_history_long表)的数码在逻辑上都源于events_stages_current表(汇总表除了那么些之外)

表记录内容示例(以下仍旧是贰个实行select sleep(100);语句的线程,但这里是阶段事件音信)

root@localhost : performance _schema 12:24:40> select * from events_stages _current where EVENT_NAME='stage/sql/User sleep'G;

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

THREAD_ID: 46

EVENT_ID: 280

END _EVENT_ID: NULL

EVENT_NAME: stage/sql/User sleep

SOURCE: item_func.cc:6056

TIMER_START: 14645080545642000

TIMER_END: 14698320697396000

TIMER_WAIT: 53240151754000

WORK_COMPLETED: NULL

WORK_ESTIMATED: NULL

NESTING _EVENT_ID: 266

NESTING _EVENT_TYPE: STATEMENT

1 row in set (0.00 sec)

如上的出口结果与话语的等候事件格局类似,这里不再赘言,events_stages_current表完整的字段含义如下

THREAD_ID,EVENT_ID:与事件波及的线程ID和脚下事变ID,能够利用THREAD_ID和EVENT_ID列值来独一标记该行,这两行的值作为整合条件时不会冒出同等的数据行

END_EVENT_ID:当三个风云开头实行时,对应行记录的该列值被设置为NULL,当多个平地风波实践完结时,对应的行记录的该列值被更新为该事件的ID

EVENT_NAME:产生事件的instruments的称呼。该列值来自setup_instruments表的NAME值。instruments名称或许装有八个部分并转身一变层次结构,如:"stage/sql/Slave has read all relay log; waiting for more updates",当中stage是甲级名称,sql是二级名称,Slave has read all relay log; waiting for more updates是第三级称号。详见链接:

SOURCE:源文件的名称及其用于检查测量检验该事件的代码位于源文件中的行号

TIMER_START,TIMER_END,TIMER_WAIT:事件的小时信息。这个值的单位是阿秒(万亿分之一秒)。TIMEEvoque_START和TIMER_END值表示事件的上寅时间和了结时间。TIMELX570_WAIT是事件实行消耗的年华(持续时间)

  • 一经事件未实施到位,则TIMEEscort_END为当前时光,TIME宝马7系_WAIT为近些日子截至所经过的日子(TIME宝马X5_END - TIMER_START)
  • 如果instruments配置表setup_instruments中对应的instruments 的TIMED字段被设置为 NO,则该instruments禁止使用时间访问作用,那么事件访问的音信记录中,TIME瑞虎_START,TIMER_END和TIMER_WAIT字段值均为NULL

WORK_COMPLETED,WORK_ESTIMATED:那一个列提供了阶段事件进程音讯

  • 表中的WORK_COMPLETED和WORK_ESTIMATED两列,它们一齐合作展现每一行的进程展现:

* 1)、WORK_COMPLETED:彰显阶段事件已到位的干活单元数

* 2)、WORK_ESTIMATED:呈现估计阶段事件将在实现的行事单元数

  • 要是instruments未有提供进程相关的作用,则该instruments推行事件访谈时就不会有速度音讯展现,WO昂科拉K_COMPLETED和WORK_ESTIMATED列都会展现为NULL。假若进度消息可用,则进程音信如何显示取决于instruments的奉增势况。performance_schema表提供了三个仓库储存进程数据的器皿,但不会要是你会定义何种衡量单位来采用那一个进程数据:

* 1)、“职业单元”是在施行进度中随时间扩张而充实的莫西干发型衡量,举例推行进度中的字节数、行数、文件数或表数。对于特定instruments的“职业单元”的概念留给提供数据的instruments代码

* 2)、WORK_COMPLETED值依据检查实验的代码分歧,能够二回增添一个或四个单元

* 3)、WORK_ESTIMATED值依照检查评定代码,或者在等第事件试行进程中产生变化

  • 等级事件进度提示器的呈现作为有以下两种意况:

* 1)、instruments不协助进程:未有可用进程数据, WOENCOREK_COMPLETED和WORK_ESTIMATED列都彰显为NULL

* 2) 、instruments帮忙进度但对应的办事负荷总工作量不可预估(Infiniti进度):独有WO翼虎K_COMPLETED列有含义(因为他体现正在实行的进程突显),WO福睿斯K_ESTIMATED列此时不算,展现为0,因为从没可预估的总进度数据。通过查询events_stages_current表来监视会话,监察和控制应用程序到这段时间停止实践了多少办事,但不可能告诉对应的劳作是不是临近变成

* 3)、instruments帮忙进程,总工程师作量可预估(有限进度):WO奥迪Q5K_COMPLETED和WORK_ESTIMATED列值有效。那体系型的速度展现可用于online DDL时期的copy表阶段监视。通过查询events_stages_current表,可监察和控制应用程序当前一度形成了多少办事,并且能够经过WOWranglerK_COMPLETED / WORK_ESTIMATED总计的比值来预估某个阶段总体达成比例

NESTING_EVENT_ID:事件的嵌套事件EVENT_ID值(父事件ID)

NESTING_EVENT_TYPE:嵌套事件类型。有效值为:TRANSACTION,STATEMENT,STAGE,WAIT。阶段事件的嵌套事件家常便饭是statement

对于events_stages_current表允许利用TRUNCATE TABLE语句来开展清理

PS:stage事件具备二个进度体现效果,大家得以运用该进程呈现效果来打听部分长日子实行的SQL的快慢百分比,比如:对于需求采用COPY方式试行的online ddl,那么要求copy的数据量是必然的,能够鲜明的,so..那就能够为"stage/sql/copy to tmp table stage" instruments提供二个有收尾边界参照的进度数据信息,这一个instruments所使用的工作单元正是供给复制的多寡行数,此时WO奥德赛K_COMPLETED和WORK_ESTIMATED列值都以实用的可用的,两个的计量比例就象征近期copy表完成copy的行数据百分比。

  • 要查阅copy表阶段事件的正在执行的进程监视效用,须要开荒相关的instruments和consumers,然后查看events_stages_current表,如下:

# 配置相关instruments和consumers

UPDATEsetup_instruments SETENABLED= 'YES'WHERENAME= 'stage/sql/copy to tmp table';

UPDATEsetup_consumers SETENABLED= 'YES'WHERENAMELIKE'events_stages_%';

# 然后在实践ALTEKuga TABLE语句时期,查看events_stages_current表

events_stages_schema全方位介绍》中。history 表

events_stages_history表包涵每一种线程最新的N个阶段事件。 在server运营时,N的值会自动调治。 假如要显式设置N值大小,能够在server运转在此以前设置系统变量performance_schema_events_stages_history_size的值。stages事件在试行完结时才增多到events_stages_history表中。 当增多新事件到events_stages_history表时,如果events_stages_history表已满,则会吐弃对应线程较旧的轩然大波events_stages_history与events_stages_current表结构同样

PS:允许行使TRUNCATE TABLE语句

events_stages_history_long 表

events_stages_history_long表包括这段时间的N个阶段事件。 在server运营时,N的值会自动调治。 若是要显式设置N值大小,能够在server运行从前安装系统变量performance_schema_events_stages_history_long_size的值。stages事件施行达成时才会增多到events_stages_history_long表中,当增添新事件到events_stages_history_long表时,如果events_stages_history_long表已满,则会抛弃该表中较旧的事件events_stages_history_long与events_stages_current表结构一样

PS:允许利用TRUNCATE TABLE语句

言辞事件表

言语事件记录表与等待事件记录表同样,也可能有三张表,那一个表记录了近些日子与近些日子在MySQL实例中发生了什么语句事件,时间消耗是有些。记录了琳琅满指标话语实践爆发的语句事件音信。

要小心:语句事件有关安顿中,setup_instruments表中statement/*起初的享有instruments配置暗许开启,setup_consumers表中statements相关的consumers配置暗许开启了events_statements_current、events_statements_history、statements_digest(对应events_statements_summary_by_digest表,详见后续章节)但尚未开启events_statements_history_long。

events_statements_current 表

events_statements_current表包括当前说话事件,每一个线程只呈现一行前段时间被监视语句事件的当前事态。

在含蓄语句事件行的表中,events_statements_current当前事变表是基础表。其余满含语句事件表中的数据在逻辑上源于当前事件表(汇总表除却)。举例:events_statements_history和events_statements_history_long表是近日的话语事件历史的成团,events_statements_history表中每一种线程暗许保留10行事件历史消息,events_statements_history_long表中暗许全数线程保留10000行事件历史音信

表记录内容示例(以下音信依旧来自select sleep(100);语句的言语事件音信)

root@localhost : performance_schema 12: 36: 35> select * from events_statements_current where SQL_TEXT= 'select sleep(100)'G;

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

THREAD_ID: 46

EVENT_ID: 334

END_EVENT_ID: NULL

EVENT_NAME: statement/sql/select

SOURCE: socket_connection.cc: 101

TIMER_START: 15354770719802000

TIMER_END: 15396587017809000

TIMER_WAIT: 41816298007000

LOCK_TIME: 0

SQL_TEXT: select sleep( 100)

DIGEST: NULL

DIGEST_TEXT: NULL

CURRENT_SCHEMA: NULL

OBJECT_TYPE: NULL

OBJECT_SCHEMA: NULL

OBJECT_NAME: NULL

OBJECT_INSTANCE_BEGIN: NULL

MYSQL_ERRNO: 0

RETURNED_SQLSTATE: NULL

MESSAGE_TEXT: NULL

ERRORS: 0

WARNINGS: 0

ROWS_AFFECTED: 0

ROWS_SENT: 0

ROWS_EXAMINED: 0

CREATED_TMP_DISK_TABLES: 0

CREATED_TMP_TABLES: 0

SELECT_FULL_JOIN: 0

SELECT_FULL_RANGE_JOIN: 0

SELECT_RANGE: 0

SELECT_RANGE_CHECK: 0

SELECT_SCAN: 0

SORT_schema全方位介绍》中。schema全方位介绍》中。MERGE_PASSES: 0

SORT_RANGE: 0

SORT_ROWS: 0

SORT_SCAN: 0

NO_INDEX_USED: 0

NO_GOOD_INDEX_USED: 0

NESTING_EVENT_ID: NULL

NESTING_EVENT_TYPE: NULL

NESTING_EVENT_LEVEL: 0

1row in set ( 0.00sec)

上述的输出结果与话语的等候事件格局类似,这里不再赘述,events_statements_current表完整的字段含义如下:

THREAD_ID,EVENT_ID:与事件涉及的线程号和事件运行时的事件编号,能够应用THREAD_ID和EVENT_ID列值来独一标志该行,这两行的值作为整合条件时不会现身同样的数据行

END_EVENT_ID:当二个事变始于实践时,对应行记录的该列值被安装为NULL,当四个平地风波实施实现时,对应的行记录的该列值被更新为该事件的ID

EVENT_NAME:产生事件的监视仪器的名称。该列值来自setup_instruments表的NAME值。对于SQL语句,EVENT_NAME值最早的instruments是statement/com/Query,直到语句被解析之后,会变动为更贴切的切实可行instruments名称,如:statement/sql/insert

SOURCE:源文件的名号及其用于检验该事件的代码位于源文件中的行号,您能够检查源代码来规定涉及的代码

TIMER_START,TIMER_END,TIMER_WAIT:事件的日子信息。那个值的单位是阿秒(万亿分之一秒)。 TIMEWrangler_START和TIMER_END值表示事件的初始时间和甘休时间。TIME冠道_WAIT是事件施行消耗的小时(持续时间)

  • 即使事件未实施到位,则TIMEEvoque_END为日前时刻,TIMEQX56_WAIT为当下了却所通过的年华(TIME奥迪Q5_END - TIMER_START)。
  • 假设监视仪器配置表setup_instruments中对应的监视器TIMED字段被安装为 NO,则不会搜聚该监视器的时刻音信,那么对于该事件访问的新闻记录中,TIME奥德赛_START,TIMER_END和TIMER_WAIT字段值均为NULL

LOCK_TIME:等待表锁的年月。该值以微秒实行测算,但最终调换为阿秒呈现,以便更易于与其余performance_schema中的反应计时器进行比较

SQL_TEXT:SQL语句的文书。假如该行事件是与SQL语句无关的command事件,则该列值为NULL。默许意况下,语句最大显示长度为1024字节。如果要修改,则在server运行在此之前安装系统变量performance_schema_max_sql_text_length的值

DIGEST:语句摘抄的MD5 hash值,为三九个人十六进制字符串,尽管在setup_consumers表中statement_digest配置行没有开启,则语句事件中该列值为NULL

DIGEST_TEXT:规范化转变过的讲话摘抄文本,如若setup_consumers表中statements_digest配置行未有开启,则语句事件中该列值为NULL。performance_schema_max_digest_length系统变量支配着在存入该表时的最大摘要语句文本的字节长度(默以为1024字节),要小心:用于计算摘要语句文本的原始语句文本字节长度由系统变量max_digest_length调控,而存入表中的字节长度由系统变量performance_schema_max_digest_length控制,所以,如果performance_schema_max_digest_length小于max_digest_length时,总结出的摘要语句文本一经超(Jing Chao)出了performance_schema_max_digest_length定义的长度会被截断

CURRENT_SCHEMA:语句使用的暗中认可数据库(使用use db_name语句就可以钦定暗中认可数据库),若无则为NULL

OBJECT_SCHEMA,OBJECT_NAME,OBJECT_TYPE:对于嵌套语句(存储程序最后是通过言语调用的,所以即便一个讲话是由存款和储蓄程序调用的,即便说那些讲话事件是嵌套在蕴藏程序中的,不过其实对于事件类型来讲,照旧是嵌套在言辞事件中),那么些列富含关于父语句的音信。如果不是嵌套语句只怕是父语句笔者发生的事件,则这个列值为NULL

OBJECT_INSTANCE_BEGIN:语句的有一无二标记,该列值是内部存款和储蓄器中对象的地点

MYSQL_ERubiconPAJERONO:语句推行的百无一是号,此值来自代码区域的口舌检查判断区域

RETURNED_SQLSTATE:语句实践的SQLSTATE值,此值来自代码区域的讲话检查判断区域

MESSAGE_TEXT:语句施行的实际错误音信,此值来自代码区域的口舌检查判断区域

E奥迪Q5ROEvoqueS:语句实行是或不是产生错误。假设SQLSTATE值以00(完结)或01(警告)起首,则该列值为0。别的任何SQLSTATE值时,该列值为1

WA奇骏NINGS:语句警告数,此值来自代码区域的说话检查判断区域

ROWS_AFFECTED:受该语句影响的行数。有关“受影响”的含义的陈诉,参见连接:

  • 使用mysql_query()或mysql_real_query()函数实践语句后,大概会立即调用mysql_affected_rows()函数。尽管是UPDATE,DELETE或INSERT,则赶回最后一条语句更动、删除、插入的行数。对于SELECT语句,mysql_affected_rows()的做事方法与mysql_num_rows()同样(在施行结果最终回来的音讯中看不到effected总结新闻)
  • 对于UPDATE语句,受影响的行值默以为实际改动的行数。假如在接二连三到mysqld时钦赐了CLIENT_FOUND_ROWS标志给mysql_real_connect()函数,那么affected-rows的值是“found”的行数。即WHERE子句相配到的行数
  • 对此REPLACE语句,借使产生新旧行替换操作,则受影响的行值为2,因为在这种场合下,实际上是先删除旧值,后插入新值四个行操作
  • 对于INSERT … ON DUPLICATE KEY UPDATE语句,假如行作为新行插入,则每行的affected计数为1,假若发生旧行更新为新行则每行affected计数为2,若无产生任何插入和革新,则每行的affected计数为0 (但一旦钦命了CLIENT_FOUND_ROWS标记,则并未有生出任何的插入和换代时,即set值就为前段时间的值时,每行的受影响行值计数为1并不是0)
  • 在蕴藏进程的CALL语句调用之后,mysql_affected_rows()重临的熏陶行数是积攒程序中的最后贰个言辞实行的震慑行数值,如若该语句再次回到-1,则存款和储蓄程序最后重返0受影响。所以在蕴藏程序施行时重临的熏陶行数并不牢靠,但是你能够自行在仓库储存程序中落到实处八个计数器变量在SQL等级使用ROW_COUNT()来博取种种语句的受影响的行值并相加,最后经过存款和储蓄程序重临那几个变量值。
  • 在MySQL 5.7中,mysql_affected_rows()为更加多的说话再次来到一个有含义的值。

* 1)、对于DDL语句,row_count()函数重返0,比方:CREATE TABLE、ALTER TABLE、DROP TABLE之类的语句

* 2)、对于除SELECT之外的DML语句:row_count()函数重返实际数目变动的行数。比如:UPDATE、INSERT、DELETE语句,未来也适用于LOAD DATA INFILE之类的口舌,大于0的重回值表示DML语句做了数额变动,要是回去为0,则代表DML语句未有做其他数据变动,或许未有与where子句相称的笔录,要是回到-1则意味语句再次来到了错误

* 3)、对于SELECT语句:row_count()函数再次回到-1,比方:SELECT * FROM t1语句,ROW_COUNT()返回-1(对于select语句,在调用mysql_store_result()此前调用了mysql_affected_rows()重返了)。然而对于SELECT * FROM t1 INTO OUTFILE'file_name'那样的言语,ROW_COUNT()函数将赶回实际写入文件中的数据行数

* 4)、对于SIGNAL语句:row_count()函数再次回到0

* 5)、因为mysql_affected_rows()重回的是八个无符号值,所以row_count()函数再次来到值小于等于0时都改动为0值重临或然不回去给effected值,row_count()函数再次回到值大于0时则赶回给effected值

ROWS_SENT:语句重临给顾客端的数码行数

ROWS_EXAMINED:在施行语句时期从存款和储蓄引擎读取的多寡行数

CREATED_TMP_DISK_TABLES:像Created_tmp_disk_tables状态变量同样的计数值,不过此间只用于那么些事件中的语句计算而不针对全局、会话品级

CREATED_TMP_TABLES:像Created_tmp_tables状态变量同样的计数值,可是此地只用于这几个事件中的语句计算而不对准全局、会话等第

SELECT_FULL_JOIN:像Select_full_join状态变量一样的计数值,不过这里只用于这些事件中的语句计算而不对准全局、会话级别

SELECT_FULL_RANGE_JOIN:像Select_full_range_join状态变量同样的计数值,不过此间只用于这一个事件中的语句计算而不针对全局、会话品级

SELECT_RANGE:就像Select_range状态变量同样的计数值,可是此地只用于那些事件中的语句总结而不对准全局、会话品级

SELECT_RANGE_CHECK:像Select_range_check状态变量同样的计数值,可是此间只用于这几个事件中的语句总括而不对准全局、会话等第

SELECT_SCAN:像Select_scan状态变量一样的计数值,不过此地只用于那么些事件中的语句总结而不针对全局、会话等级

SORT_MERGE_PASSES:像Sort_merge_passes状态变量同样的计数值,然而这里只用于这一个事件中的语句总结而不对准全局、会话等级

SORT_RANGE:像Sort_range状态变量同样的计数值,不过此地只用于这些事件中的语句总计而不对准全局、会话品级

SORT_ROWS:像Sort_rows状态变量同样的计数值,可是这里只用于那一个事件中的语句总计而不针对全局、会话等级

SORT_SCAN:像Sort_scan状态变量一样的计数值,不过此间只用于这些事件中的语句总括而不对准全局、会话等级

NO_INDEX_USED:借使语句推行表扫描而不应用索引,则该列值为1,不然为0

NO_GOOD_INDEX_USED:假诺服务器找不到用于该语句的合适索引,则该列值为1,否则为0

NESTING_EVENT_ID,NESTING_EVENT_TYPE,NESTING_EVENT_LEVEL:那三列与任何列结合一齐使用,为头号(未知抽象的言语只怕说是父语句)语句和嵌套语句(在仓库储存的主次中推行的说话)提供以下事件消息

  • 对此拔尖语句:

OBJECT_TYPE = NULL,OBJECT_SCHEMA = NULL,OBJECT_NAME = NULL,NESTING_EVENT_ID = NULL,NESTING_EVENT_TYPE = NULL,NESTING_LEVEL = 0

  • 对于嵌套语句:OBJECT_TYPE =父语句对象类型,OBJECT_SCHEMA =父语句数据库级名称,OBJECT_NAME =父语句表级对象名称,NESTING_EVENT_ID =父语句EVENT_ID,NESTING_EVENT_TYPE ='STATEMENT',NESTING_LEVEL =父语句NESTING_LEVEL加一,比如:1,表示父语句的下一层嵌套语句

允许行使TRUNCATE TABLE语句

events_statements_history 表

events_statements_history表包蕴各类线程最新的N个语句事件。 在server运维时,N的值会自动调度。 要显式设置N的大大小小,能够在server运行以前安装系统变量performance_schema_events_statements_history_size的值。 statement事件奉行到位时才会增多到该表中。 当增加新事件到该表时,假使对应线程的风云在该表中的分配的定额已满,则会甩掉对应线程的较旧的平地风波

events_statements_history与events_statements_current表结构同样

PS:允许使用TRUNCATE TABLE语句

events_statements_history_long 表

events_statements_history_long表满含近期的N个语句事件。在server运维时,N的值会自动调节。 要显式设置N的分寸,能够在server运营以前设置系统变量performance_schema_events_statements_history_long_size的值。 statement事件供给进行完结时才会增添到该表中。 当增添新事件到该表时,假如该表的大局分配的定额已满,则会吐弃该表中较旧的风浪

events_statements_history_long与events_statements_current表结构同样

PS:允许使用TRUNCATE TABLE语句

事情事件表

作业事件记录表与等待事件记录表一样,也可能有三张表,这么些表记录了当前与近年来在MySQL实例中生出了什么事情事件,时间花费是多少

要留神:事务事件有关配置中,setup_instruments表中唯有贰个名称叫transaction的instrument,暗中同意关闭,setup_consumers表中transactions相关的consumers配置暗中同意关闭了

events_transactions_current 表

events_transactions_current表包蕴当前事情事件新闻,每一个线程只保留一行近年来思想政治工作的事务事件

在包涵事务事件音信的表中,events_transactions_current是基础表。其余包罗事务事件音信的表中的数码逻辑上来自当前事件表。举例:events_transactions_history和events_transactions_history_long表分别富含每一种线程近年来10行事务事件音信和全局如今10000行事务事件新闻

表记录内容示例(以下新闻来源对某表试行了三遍select等值查询的事体育赛事件新闻)

root@localhost : performance _schema 12:50:10> select * from events_transactions_currentG;

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

THREAD_ID: 46

EVENT_ID: 38685

END_EVENT_ID: 38707

EVENT_NAME: transaction

STATE: COMMITTED

TRX_ID: 422045139261264

GTID: AUTOMATIC

XID_FORMAT_ID: NULL

XID_GTRID: NULL

XID_BQUAL: NULL

XA_STATE: NULL

SOURCE: handler.cc:1421

TIMER_START: 16184509764409000

TIMER_END: 16184509824175000

TIMER_WAIT: 59766000

ACCESS_MODE: READ WRITE

ISOLATION_LEVEL: READ COMMITTED

AUTOCOMMIT: YES

NUMBER_OF_SAVEPOINTS: 0

NUMBER _OF_ROLLBACK _TO_SAVEPOINT: 0

NUMBER _OF_RELEASE_SAVEPOINT: 0

OBJECT_INSTANCE_BEGIN: NULL

NESTING_EVENT_ID: 38667

NESTING_EVENT_TYPE: STATEMENT

1 row in set (0.00 sec)

以上的输出结果与话语的等候事件方式类似,这里不再赘述,events_transactions_current表完整字段含义如下:

THREAD_ID,EVENT_ID:与事件涉及的线程号和事件运行时的风云编号,能够选择THREAD_ID和EVENT_ID列值来唯一标志该行,这两行的值作为整合条件时不会油不过生同等的数据行

END_EVENT_ID:当多个事件开端实施时,对应行记录的该列值被设置为NULL,当三个事变执行达成时,对应的行记录的该列值被更新为该事件的ID

EVENT_NAME:搜集该事务事件的instruments的称呼。来自setup_instruments表的NAME列值

STATE:当前事意况态。有效值为:ACTIVE(实施了START TRANSACTION或BEGIN语句之后,事务未提交或未回滚以前)、COMMITTED(试行了COMMIT之后)、ROLLED BACK(实践了ROLLBACK语句之后)

TRX_ID:未使用,字段值总是为NULL

GTID:包含gtid_next系统变量的值,其值或许是格式为:UUID:NUMBE奥迪Q3的GTID,也只怕是:ANONYMOUS、AUTOMATIC。对于AUTOMATIC列值的事体事件,GTID列在职业提交和相应事务的GTID实际分配时都会进展退换(若是gtid_mode系统变量为ON或ON_PERMISSIVE,则GTID列将转移为业务的GTID,假如gtid_mode为OFF或OFF_PERMISSIVE,则GTID列将转移为ANONYMOUS)

XID_FORMAT_ID,XID_GTRID和XID_BQUAL:XA事务标记符的机件。关于XA事务语法详见链接:

XA_STATE:XA事务的场所。有效值为:ACTIVE(推行了XA START之后,未执行其他后续XA语句在此之前)、IDLE(实施了XA END语句之后,未进行另外后续XA语句以前)、PREPARED(实践了XA PREPARE语句之后,未奉行其他后续XA语句在此之前)、ROLLED BACK(施行了XA ROLLBACK语句之后,未施行别的后续XA语句从前)、COMMITTED(施行了XA COMMIT语句之后)

SOURCE:源文件的名号及其用于质量评定该事件的代码位于源文件中的行号,您能够检查源代码来规定涉及的代码

TIMER_START,TIMER_END,TIMER_WAIT:事件的命宫新闻。那么些值的单位是飞秒(万亿分之一秒)。TIME冠道_START和TIMER_END值表示事件的始发时间和得了时间。TIMERAV4_WAIT是事件施行消耗的日子(持续时间)

  • 借使事件未实行到位,则TIMELX570_END为近期时间,TIMEEnclave_WAIT为当下得了所经过的小时(TIME君越_END - TIMER_START)
  • 一旦监视仪器配置表setup_instruments中对应的监视器TIMED字段被安装为 NO,则不会搜聚该监视器的年华消息,那么对于该事件访谈的新闻记录中,TIMEOdyssey_START,TIMER_END和TIMER_WAIT字段值均为NULL

ACCESS_MODE:事务访谈方式。有效值为:READ ONLY或READ W奥迪Q3ITE

ISOLATION_LEVEL:事务隔断等级。有效值为:REPEATABLE READ、READ COMMITTED、READ UNCOMMITTED、SE奥迪TTIALIZABLE

AUTOCOMMIT:在业务伊始时是还是不是启用了机关提交方式,假诺启用则为YES,未有启用则为NO

NUMBER_OF_SAVEPOINTS,NUMBER_OF_ROLLBACK_TO_SAVEPOINT,NUMBER_OF_RELEASE_SAVEPOINT:在事情内实施的SAVEPOINT,ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT语句的数目

OBJECT_INSTANCE_BEGIN:未使用,字段值总是为NULL

NESTING_EVENT_ID:嵌套事务事件的父事件EVENT_ID值

NESTING_EVENT_TYPE:嵌套事件类型。有效值为:TRANSACTION、STATEMENT、STAGE、WAIT (由于业务不大概嵌套,由此该列值不会并发TRANSACTION)

同意接纳TRUNCATE TABLE语句

events_transactions_history 表

events_transactions_history表包蕴各类线程目前的N个事务事件。 在server运行时,N的值会自动调度。 要显式设置N的高低,能够在server运行以前设置系统变量

performance_schema_events_transactions_history_size的值。事务事件未执行到位从前不会增加到该表中。当有新的业务事件增添到该表时,假如该表已满,则会吐弃对应线程较旧的事情事件

events_transactions_history与events_transactions_current表结构一样

PS:允许使用TRUNCATE TABLE语句

events_transactions_history_long 表

events_transactions_history_long表包蕴全局方今的N个事务事件。在server运营时,N的值会自动调节。 要显式设置N的高低,能够在server运行之前设置系统变量

performance_schema_events_transactions_history_long_size的值。事务事件在实行完在此以前不会增多到该表中。当增加新职业事件时,要是该表已满,则会放任较旧的风浪

events_transactions_history_long与events_transactions_current表结构同样

PS:允许选取TRUNCATE TABLE语句

下一篇将为我们分享 《事件总括 | performance_schema 全方位介绍》 ,多谢您的读书,大家不见不散!再次来到天涯论坛,查看越多

主编:

编辑:互联网平台 本文来源:schema全方位介绍》中

关键词: www.27111.co www.27111.co