……

MySQL Performance-Schema(一) 配置表,performanceschema

      performance-schema最早在MYSQL
伍.5中现身,而现行反革命5.六,5.7中performance-Schema又增添了越来越多的监察和控制项,统计消息也更增加,越来越有ORACLE-AW猎豹CS陆总结音讯的赶脚,真乃DBA童鞋进行品质会诊分析的福音。本文首要讲Performance-Schema中的配置表,通过安插表能差不多掌握performance-schema的全貌,为持续使用和深刻了然做准备。

配置表

Performance-Schema中主要有五个布局表,具体如下:

[email protected]_schema
06:03:09>show tables like ‘%setup%’;
+—————————————-+
| Tables_in_performance_schema (%setup%) |
+—————————————-+
| setup_actors |
| setup_consumers |
| setup_instruments |
| setup_objects |
| setup_timers |
+—————————————-+

1.setup_actors用于配置user维度的督察,暗中同意境况下监察和控制全数用户线程。
[email protected]_schema
05:47:27>select * from setup_actors;
+——+——+——+
| HOST | USER | ROLE |
+——+——+——+
| % | % | % |
+——+——+——+

2.setup_consumers表用于配置事件的消费者类型,即搜聚的轩然大波最终会写入到什么总计表中。
[email protected]_schema
05:48:16>select * from setup_consumers;
+——————————–+———+
| NAME | ENABLED |
+——————————–+———+
| events_stages_current | NO |
| events_stages_history | NO |
| events_stages_history_long | NO |
| events_statements_current | YES |
| events_statements_history | NO |
| events_statements_history_long | NO |
| events_waits_current | NO |
| events_waits_history | NO |
| events_waits_history_long | NO |
| global_instrumentation | YES |
| thread_instrumentation | YES |
| statements_digest | YES |
+——————————–+———+
能够看到有十一个consumer,假若不想关注某个consumer,能够将ENABLED设置为NO,比如events_statements_history_long设置为NO,
则搜集事件不会写入到对应的表events_statements_history_long中。拾贰个consumer不是平级的,存在壹连串层次关系。具体如下表:
global_instrumentation
 |– thread_instrumentation
   |– events_waits_current
     |– events_waits_history
     |– events_waits_history_long
   |– events_stages_current
     |– events_stages_history
     |– events_stages_history_long
   |– events_statements_current
     |– events_statements_history
     |– events_statements_history_long
 |– statements_digest

多层次的consumer遵守3个为主条件,唯有上一层次的为YES,才会持续检查该本层为YES
or
NO。global_instrumentation是最高端别consumer,倘若它设置为NO,则怀有的consumer都会忽视。若是只开荒global_instrumentation,而关门大吉全部其余子consumer(设置为NO),则只收罗全局维度的总计新闻,比如xxx_instance表,而不会搜罗用户维度,语句维度的信息。第2层次的是thread_instrumentation,用户线程维度的计算消息,比如xxx_by_thread表,此外一个是statements_digest,那么些用于全局总括SQL-digest的音讯。第1层次是语句维度,包蕴events_waits_current,events_stages_current和events_statements_current,分别用于总括wait,stages和statement新闻,第六层次是历史表消息,主要不外乎xxx_history和xxx_history_long。

3.setup_instruments表用于配置一条条切实的instrument,重要涵盖四大类:idle,stage/xxx,statement/xxx,wait/xxx.
[email protected]_schema
06:25:50>select name,count(*) from setup_instruments group by
LEFT(name,5);
+———————————+———-+
| name | count(*) |
+———————————+———-+
| idle | 1 |
| stage/sql/After create | 111 |
| statement/sql/select | 170 |
| wait/synch/mutex/sql/PAGE::lock | 296 |
+———————————+———-+
idle表示socket空闲的日子,stage类表示语句的各样推行品级的总括,statement类计算语句维度的新闻,wait类总计各样等待事件,比如IO,mutux,spin_lock,condition等。从上表总计结果来看,能够主导看到每类的instrument数目,stage包括113个,statement包罗1陆拾七个,wait包涵2玖拾叁个。

4.setup_objects表用于配置监察和控制目的,暗许景况下有所mysql,performance_schema和information_schema中的表都不监控。而别的DB的具有表都监察和控制。

[email protected]_schema
06:25:55>select * from setup_objects;
+————-+——————–+————-+———+——-+
| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |
+————-+——————–+————-+———+——-+
| TABLE | mysql | % | NO | NO |
| TABLE | performance_schema | % | NO | NO |
| TABLE | information_schema | % | NO | NO |
| TABLE | % | % | YES | YES |
+————-+——————–+————-+———+——-+

5.setup_timers表用于配置每种类型指令的总括时间单位。MICROSECOND表示总结单位是神秘,CYCLE表示总括单位是石英钟周期,时间衡量与CPU的主频有关,NANOSECOND表示总结单位是飞秒,关于每个类型的切切实实意思,能够参照performance_timer那一个表。由于wait类包罗的都以等待事件,单个SQL调用次数比较多,由此接纳代价最小的襟怀单位cycle。但无论是使用哪一种测量单位,最后计算表中执会考查总括局计的大运都会装换成微秒。

[email protected]_schema
06:29:50>select \
from setup_timers;
+———–+————-+
| NAME | TIMER_NAME |
+———–+————-+
| idle | MICROSECOND |
| wait | CYCLE |
| stage | NANOSECOND |
| statement | NANOSECOND |
+———–+————-+*

配置方式

**     
暗中同意意况下,setup_instruments表只开拓了statement和wait/io部分的一声令下,setup_consumer表中大多consumer也未有张开。为了张开要求的选项,能够由此update语句直接改造配置表,并且修改后得以即时生效,但那种办法必需得运行服务器后才得以修改,并且不可能持久化,重启后,又得复位2遍。从伍.陆.四开首提供了my.cnf的布局格局,格式如下:

1.设置搜聚的instrument
performance_schema_instrument=’instrument_name=value’
(一)展开wait类型的指令
performance_schema_instrument=’wait/%’
(2)展开装有指令
performance_schema_instrument=’%=on’

2.设置consumer
performance_schema_consumer_xxx=value
(1)打开 events_waits_history consumer

performance_schema_consumer_events_waits_current=on

performance_schema_consumer_events_waits_history=on

此处要专注consumer的层系关系, events_waits_history处于第四层,由此设置它时,要保管events_statements_current,thread_instrumentation和global_instrumentation的ENABLED状态都为YES,才能立见功能。由于暗中认可thread_instrumentation和global_instrumentation都以YES,由此只须求显示设置events_waits_current和events_waits_current即可。

三.装置计算表大小
所有的performance_schema表均选取PEQX56FO福特ExplorerMANCE_SCHEMA存款和储蓄引擎,表中的有着数据只设有内存,表的大小在系统开头化时早已
定位好,由此据有的内部存款和储蓄器是迟早的。能够透过布置来定制具体种种表的记录数。
performance_schema_events_waits_history_size=20
performance_schema_events_waits_history_long_size=15000

 

Performance-Schema(壹)
配置表,performanceschema performance-schema最早在MYSQL
5.5中冒出,最近后5.六,五.柒中performance-Schema又增加了越来越多的监察项,统…

MySQL Performance-Schema(一) 配置表

performance-schema最早在MYSQL
伍.5中出现,而后天伍.6,5.7中performance-Schema又增加了越来越多的监察项,总计新闻也更拉长,越来越有ORACLE-AWOdyssey总结音讯的赶脚,真乃DBA童鞋进行品质检查判断分析的教义。本文首要讲Performance-Schema中的配置表,通过配备表能大致领悟performance-schema的全貌,为一而再使用和浓厚领会做准备。

 

配置表

 

Performance-Schema中最主要有多少个布局表,具体如下:

 

[email protected]_schema
06:03:09>show tables like ‘%setup%’;

+—————————————-+

| Tables_in_performance_schema (%setup%) |

+—————————————-+

| setup_actors |

| setup_consumers |

| setup_instruments |

| setup_objects |

| setup_timers |

+—————————————-+

 

1.setup_actors用于配置user维度的监察,暗许景况下监察和控制全体用户线程。

[email protected]_schema
05:47:27>select * from setup_actors;

+——+——+——+

| HOST | USER | ROLE |

+——+——+——+

| % | % | % |

+——+——+——+

 

2.setup_consumers表用于配置事件的顾客类型,即采集的轩然大波结尾会写入到怎么着总结表中。

[email protected]_schema
05:48:16>select * from setup_consumers;

+——————————–+———+

| NAME | ENABLED |

+——————————–+———+

| events_stages_current | NO |

| events_stages_history | NO |

| events_stages_history_long | NO |

| events_statements_current | YES |

| events_statements_history | NO |

| events_statements_history_long | NO |

| events_waits_current | NO |

| events_waits_history | NO |

| events_waits_history_long | NO |

| global_instrumentation | YES |

| thread_instrumentation | YES |

| statements_digest | YES |

+——————————–+———+

能够看看有拾个consumer,借使不想关注有些consumer,能够将ENABLED设置为NO,比如events_statements_history_long设置为NO,

则搜聚事件不会写入到相应的表events_statements_history_long中。10个consumer不是平级的,存在多种层次关系。具体如下表:

global_instrumentation 

 |– thread_instrumentation

   |– events_waits_current

     |– events_waits_history

     |– events_waits_history_long

   |– events_stages_current

     |– events_stages_history

     |– events_stages_history_long

   |– events_statements_current

     |– events_statements_history

     |– events_statements_history_long

 |– statements_digest

 

多层次的consumer服从多少个骨干尺度,唯有上壹层次的为YES,才会继续检查该本层为YES
or
NO。global_instrumentation是最高端别consumer,假诺它设置为NO,则有所的consumer都会忽略。若是只开垦global_instrumentation,而停业全体其余子consumer(设置为NO),则只收罗全局维度的总计音讯,比如xxx_instance表,而不会收集用户维度,语句维度的新闻。第三层次的是thread_instrumentation,用户线程维度的总计消息,比如xxx_by_thread表,其它二个是statements_digest,这么些用于全局计算SQL-digest的新闻。第3层次是语句维度,包涵events_waits_current,events_stages_current和events_statements_current,分别用于总括wait,stages和statement音讯,第陆层次是历史表音讯,主要不外乎xxx_history和xxx_history_long。

 

3.setup_instruments表用于配置一条条切实可行的instrument,首要包蕴肆大类:idle,stage/xxx,statement/xxx,wait/xxx.

[email protected]_schema
06:25:50>select name,count(*) from setup_instruments group by
LEFT(name,5);

+———————————+———-+

| name | count(*) |

+———————————+———-+

| idle | 1 |

| stage/sql/After create | 111 |

| statement/sql/select | 170 |

| wait/synch/mutex/sql/PAGE::lock | 296 |

+———————————+———-+

 

idle表示socket空闲的光阴,stage类表示语句的各样实践阶段的总计,statement类计算语句维度的信息,wait类总结各类等待事件,比如IO,mutux,spin_lock,condition等。从上表总结结果来看,能够着力看到每类的instrument数目,stage蕴涵1十三个,statement蕴涵170个,wait包涵29陆个。

 

4.setup_objects表用于配置监察和控制目的,暗中认可情形下全数mysql,performance_schema和information_schema中的表都不监控。而其余DB的保有表都监察和控制。

 

[email protected]_schema
06:25:55>select * from setup_objects;

+————-+——————–+————-+———+——-+

| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |

+————-+——————–+————-+———+——-+

| TABLE | mysql | % | NO | NO |

| TABLE | performance_schema | % | NO | NO |

| TABLE | information_schema | % | NO | NO |

| TABLE | % | % | YES | YES |

+————-+——————–+————-+———+——-+

 

5.setup_timers表用于配置每个类型指令的总结时间单位。MICROSECOND表示计算单位是神秘,CYCLE表示总括单位是石英钟周期,时间度量与CPU的主频有关,NANOSECOND表示计算单位是飞秒,关于每种类型的实际意思,能够参见performance_timer这几个表。由于wait类包蕴的都以伺机事件,单个SQL调用次数相比较多,由此挑选代价最小的胸怀单位cycle。但不论是采纳哪个种类衡量单位,最终总结表中执会调查总结局计的时日都会装换成飞秒。

 

[email protected]_schema
06:29:50>select * from setup_timers;

+———–+————-+

| NAME | TIMER_NAME |

+———–+————-+

| idle | MICROSECOND |

| wait | CYCLE |

| stage | NANOSECOND |

| statement | NANOSECOND |

+———–+————-+

 

安顿方式

 

默许景况下,setup_instruments表只开发了statement和wait/io部分的一声令下,setup_consumer表中有的是consumer也从未展开。为了开拓必要的选项,能够由此update语句直接改换配置表,并且修改后方可即时生效,但那种措施必需得运营服务器后才得以修改,并且不可能持久化,重启后,又得重复设置叁遍。从5.六.4伊始提供了my.cnf的陈设方式,格式如下:

 

1.安装搜聚的instrument

performance_schema_instrument=’instrument_name=value’

(壹)展开wait类型的命令

performance_schema_instrument=’wait/%’

(二)展开装有指令

performance_schema_instrument=’%=on’

 

2.设置consumer

performance_schema_consumer_xxx=value

(1)打开 events_waits_history consumer

 

performance_schema_consumer_events_waits_current=on

 

performance_schema_consumer_events_waits_history=on

 

此处要专注consumer的层系关系,
events_waits_history处于第六层,因而设置它时,要保管events_statements_current,thread_instrumentation和global_instrumentation的ENABLED状态都为YES,才具见效。由于暗中认可thread_instrumentation和global_instrumentation都以YES,由此只须求展现设置events_waits_current和events_waits_current即可。

 

3.设置总结表大小

所有的performance_schema表均选拔PEQX56FO帕JeroMANCE_SCHEMA存款和储蓄引擎,表中的保有数据只设有内部存款和储蓄器,表的轻重缓急在系统开首化时早已

定位好,因而占领的内部存款和储蓄器是必定的。能够透过计划来定制具体种种表的记录数。

performance_schema_events_waits_history_size=20

performance_schema_events_waits_history_long_size=15000

Performance-Schema(一) 配置表
performance-schema最早在MYSQL
5.第55中学冒出,而以往5.6,伍.7中performance-Schema又增加了越多的监督项,总计消息也更丰裕…

5.setup_timers表用于配置每体系型指令的计算时间单位。MICROSECOND表示总结单位是神秘,CYCLE表示总计单位是石英钟周期,时间衡量与CPU的主频有关,NANOSECOND表示总结单位是皮秒,关于每种类型的实际意思,能够参照performance_timer那几个表。由于wait类包涵的都以等待事件,单个SQL调用次数比较多,由此挑选代价最小的胸怀单位cycle。但无论是采纳哪一类衡量单位,最后计算表中执会侦察计算局计的岁月都会装换成皮秒。

二).
与大多数等待事件分裂,表I/O等待能够归纳别的等待。例如,表I/O只怕包罗文件I/O或内部存款和储蓄器操作。因而,表I/O等待的风浪在events_waits_current表中的记录普通有两行(除了wait/io/table/sql/handler的事件记录之外,恐怕还包涵壹行wait/io/file/myisam/dfile的风云记录)。那种能够称呼表IO操作的原子事件

4.setup_objects表用于配置监察和控制目的,私下认可意况下具有mysql,performance_schema和information_schema中的表都不监察和控制。而任何DB的具备表都监察和控制。

| wait/io/file/sql/casetest |YES | YES |

布置格局

  • instruments名称前缀表示instruments的档次(如wait/io/file/myisam/log中的wait),该前缀名称还用于在setup_timers表中配备有些事件类型的定期器,也被称作顶层组件
  • instruments名称后缀部分来自instruments本人的代码。后缀只怕包罗以下层级的机件: *
    首要组件的名目(如:myisam,innodb,mysys或sql,这么些都是server的子系统模块组件)或插件名称 *
    代码中变量的名称,格式为XXX(全局变量)或CCC::MMM(CCC表示3个类名,MMM表示在类CCC功效域中的2个成员对象),如:’wait/synch/cond/sql/COND_thread_cache’
    instruments中的COND_thread_cache,’wait/synch/mutex/mysys/THR_LOCK_myisam’
    instruments中的THR_LOCK_myisam,’wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_index’
    instruments中的MYSQL_BIN_LOG::LOCK_index

root@performance_schema
06:25:55>select * from setup_objects;
+————-+——————–+————-+———+——-+
| OBJECT_TYPE | OBJECT_SCHEMA |
OBJECT_NAME | ENABLED | TIMED |
+————-+——————–+————-+———+——-+
| TABLE | mysql | % | NO | NO |
| TABLE | performance_schema | % | NO |
NO |
| TABLE | information_schema | % | NO |
NO |
| TABLE | % | % | YES | YES |
+————-+——————–+————-+———+——-+

# 插入用户joe@’hosta.example.com’对应ENABLED=YES、HISTOLX570Y=NO的安排行

1.setup_actors用于配置user维度的监察,暗许情形下监察和控制全数用户线程。
root@performance_schema
05:47:27>select * from setup_actors;
+——+——+——+
| HOST | USER | ROLE |
+——+——+——+
| % | % | % |
+——+——+——+

| FUNCTION |% | % |YES | YES |

 

  • events 输出表
    events_xxx_summary_by_yyy_by_event_name的按钮由global_instrumentation调控,且表中是有一定数据行,不可清理,truncate只怕关闭相关的consumers时只是不总括有关的instruments搜聚的events数据,相关字段为0值
  • 如果performance_schema在对setup_consumers表做检讨时意识某些consumers配置行的ENABLED
    列值不为YES,则与这几个consumers相关联的events输出表中就不会接受存款和储蓄任何事件记录
  • 高端其他consumers设置不为YES时,依赖于那一个consumers配置为YES时才会启用的那个更低端别的consumers将一并被剥夺

那边要小心consumer的层系关系, events_waits_history处于第5层,因而设置它时,要确认保障events_statements_current,thread_instrumentation和global_instrumentation的ENABLED状态都为YES,手艺奏效。由于暗中同意thread_instrumentation和global_instrumentation都以YES,由此只要求呈现设置events_waits_current和events_waits_current即可。

关闭与开启全数后台线程的督察收集功效

**     
暗中同意情形下,setup_instruments表只开荒了statement和wait/io部分的下令,setup_consumer表中大多consumer也从不张开。为了开发需求的选项,可以透过update语句直接改变配置表,并且修改后得以立刻生效,但这种措施必需得运转服务器后才得以修改,并且不可能持久化,重启后,又得重新安装三次。从5.陆.四起初提供了my.cnf的布置方式,格式如下:

| TABLE |db1 | t2 |NO | NO |

配置表

+—————————–+———+——-+

2.设置consumer
performance_schema_consumer_xxx=value
(1)打开 events_waits_history
consumer

(2)**setup_timers**表

root@performance_schema 06:03:09>show
tables like ‘%setup%’;
+—————————————-+
| Tables_in_performance_schema (%setup%) |
+—————————————-+
| setup_actors |
| setup_consumers |
| setup_instruments |
| setup_objects |
| setup_timers |
+—————————————-+

下1篇将为大家分享 《事件记录 |
performance_schema 全方位介绍》
,谢谢您的翻阅,我们不见不散!
再次来到今日头条,查看越多

3.setup_instruments表用于配置一条条实际的instrument,主要含有肆大类:idle,stage/xxx,statement/xxx,wait/xxx.
root@performance_schema
06:25:50>select name,count(*) from setup_instruments group by
LEFT(name,5);
+———————————+———-+
| name | count(*) |
+———————————+———-+
| idle | 1 |
| stage/sql/After create | 111 |
| statement/sql/select | 170 |
| wait/synch/mutex/sql/PAGE::lock | 296
|
+———————————+———-+
idle表示socket空闲的小运,stage类表示语句的各类实践等第的计算,statement类计算语句维度的消息,wait类总结种种等待事件,比如IO,mutux,spin_lock,condition等。从上表总结结果来看,能够主导看到每类的instrument数目,stage包蕴113个,statement包蕴1七十二个,wait包涵2玖多少个。

#
假如发现performance_schema开始的几个挑选,则表示近来mysqld援助performance_schema,假若未有发觉performance_schema相关的选项,表明当前数据库版本不扶助performance_schema,你或许须求升高mysql版本:

多层次的consumer坚守二个为主尺度,唯有上1层次的为YES,才会三番九次检查该本层为YES
or NO。global_instrumentation是最高档别consumer,要是它设置为NO,则兼具的consumer都会忽略。要是只开荒global_instrumentation,而关门全部其余子consumer(设置为NO),则只采集全局维度的总结新闻,比如xxx_instance表,而不会搜聚用户维度,语句维度的音讯。第三层次的是thread_instrumentation,用户线程维度的总结音信,比如xxx_by_thread表,此外3个是statements_digest,这些用于全局计算SQL-digest的新闻。第二层次是语句维度,包涵events_waits_current,events_stages_current和events_statements_current,分别用于总结wait,stages和statement音信,第陆层次是历史表音信,首要包蕴xxx_history和xxx_history_long。

performance_schema_max_digest_length=1024

一.设置搜集的instrument
performance_schema_instrument=’instrument_name=value’
(一)展开wait类型的命令
performance_schema_instrument=’wait/%’
(二)展开装有指令
performance_schema_instrument=’%=on’

performance-schema-consumer-events-statements-history- longFALSE

3.设置计算表大小
所有的performance_schema表均接纳PEXC60FOEnclaveMANCE_SCHEMA存款和储蓄引擎,表中的有着数据只存在内部存储器,表的深浅在系统发轫化时一度
恒定好,因而据有的内存是放任自流的。能够因而布署来定制具体每种表的记录数。
performance_schema_events_waits_history_size=20
performance_schema_events_waits_history_long_size=15000

局地可能常用的情形相关的安装 :

      performance-schema最早在MYSQL
伍.5中现身,而前些天5.陆,5.7中performance-Schema又增多了越多的督察项,总括消息也更增加,越来越有ORACLE-AW库罗德总结消息的赶脚,真乃DBA童鞋举行品质会诊分析的佛法。本文首要讲Performance-Schema中的配置表,通过配备表能大概驾驭performance-schema的全貌,为后续使用和浓厚通晓做准备。

+————-+——————–+————-+———+——-+

root@performance_schema
06:29:50>select \
from setup_timers;
+———–+————-+
| NAME | TIMER_NAME |
+———–+————-+
| idle | MICROSECOND |
| wait | CYCLE |
| stage | NANOSECOND |
| statement | NANOSECOND |
+———–+————-+*

当performance_schema初阶化时,它根据当下存在的线程每种线程生成一行音信记录在threads表中。此后,每新建贰个线程在该表中就会骤增壹行对应线程的记录

Performance-Schema中任重先生而道远有四个布局表,具体如下:

  • global_instrumentation处于顶尖位置,优先级最高。 *
    当global_instrumentation为YES时,会检查setup_consumers表中的statements_digest和thread_instrumentation的安插,会有意无意检查setup_instruments、setup_objects、setup_timers配置表 *
    当global_instrumentation为YES时(无论setup_consumers表中的statements_digest和thread_instrumentation怎样布署,只依靠于global_instrumentation的配备),会爱抚大局events输出表:mutex_instances、rwlock_instances、cond_instances、file_instances、users、hostsaccounts、socket_summary_by_event_name、file_summary_by_instance、file_summary_by_event_name、objects_summary_global_by_type、memory_summary_global_by_event_name、table_lock_waits_summary_by_table、table_io_waits_summary_by_index_usage、table_io_waits_summary_by_table、events_waits_summary_by_instance、events_waits_summary_global_by_event_name、events_stages_summary_global_by_event_name、events_statements_summary_global_by_event_name、events_transactions_summary_global_by_event_name *
    当global_instrumentation为NO时,不会检查任何更低端别的consumers配置,不会爱惜任何events输出表(memory_%起初的events输出表除此之外,那一个表维护只受setup_instruments配置表调节)
  • statements_digest和thread_instrumentation处于同一流别,优先级次于global_instrumentation,且依赖于global_instrumentation为YES时安顿才会被检查评定 *
    当statements_digest为YES时,statements_digest
    consumers未有更低端其他配备,依赖于global_instrumentation为YES时陈设才会被检查实验,会爱惜events输出表:events_statements_summary_by_digest *
    当statements_digest为NO时,不维护events输出表:events_statements_summary_by_digest *
    当thread_instrumentation为YES时,会检查setup_consumers表中的events_xxx_current配置(xxx表示:waits、stages、statements、transactions),会有意无意检查setup_actors、threads配置表。会维护events输出表
    events_xxx_summary_by_yyy_by_event_name,个中: xxx含义同上;
    yyy表示:thread、user、host、account *
    当thread_instrumentation为NO时,不检查setup_consumers表中的events_xxx_current配置,不维护events_xxx_current及其更低等别的events输出表
  • events_xxx_current种类(xxx含义同上)consumers处于一样等级。且重视于thread_instrumentation为YES时铺排才会被检验 *
    当events_xxx_current为YES时,会检测setup_consumers配置表中的events_xxx_history和events_xxx_history_long系列
    consumers配置,会维护events_xxx_current系列表 *
    当events_xxx_current为NO时,不检测setup_consumers配置表中的events_xxx_history和events_xxx_history_long系列
    consumers配置,不维护events_xxx_current系列表
  • events_xxx_history和events_xxx_history_long系列(同events_xxx_current中的xxx)consumers处于同一流别,优先级次于events_xxx_current
    类别consumers(xxx含义同上),注重于events_xxx_current
    种类consumers为YES时才会被检查测试 *
    当events_xxx_history为YES时,未有更低档别的conosumers配置须求检查评定,但会有意无意检查评定setup_actors、threads配置表中的HISTOOdysseyY列值,会维护events_xxx_history系列表,反之不维护 *
    当events_xxx_history_long为YES时,没有更低端别的conosumers配置需求检验,但会顺手工检索测setup_actors、threads配置表中的HISTO昂科雷Y列值,会维护events_xxx_history_long类别表,反之不尊敬

2.setup_consumers表用于配置事件的顾客类型,即收罗的事件结尾会写入到哪些总计表中。
root@performance_schema
05:48:16>select * from setup_consumers;
+——————————–+———+
| NAME | ENABLED |
+——————————–+———+
| events_stages_current | NO |
| events_stages_history | NO |
| events_stages_history_long | NO
|
| events_statements_current | YES
|
| events_statements_history | NO
|
| events_statements_history_long | NO
|
| events_waits_current | NO |
| events_waits_history | NO |
| events_waits_history_long | NO
|
| global_instrumentation | YES
|
| thread_instrumentation | YES
|
| statements_digest | YES |
+——————————–+———+
能够看看有13个consumer,假设不想关心有些consumer,能够将ENABLED设置为NO,比如events_statements_history_long设置为NO,
则搜集事件不会写入到相应的表events_statements_history_long中。10个consumer不是平级的,存在多种层次关系。具体如下表:
global_instrumentation
 |– thread_instrumentation
   |– events_waits_current
     |– events_waits_history
     |–
events_waits_history_long
   |– events_stages_current
     |– events_stages_history
     |–
events_stages_history_long
   |–
events_statements_current
     |–
events_statements_history
     |–
events_statements_history_long
 |– statements_digest

performance_schema_consumer_events_waits_current=on

performance-schema-consumer-events-statements-current TRUE

performance_schema_consumer_events_waits_history=on

mysql> SELECT * FROM setup_instruments;

是还是不是在MySQL
Server运转时就启用有些搜聚器,由于instruments配置项多达数千个,所以该配置项扶助key-value方式,还扶助%号进行通配等,如下:

Rows matched: 2 Changed: 2 Warnings: 0

mysql> SELECT * FROM setup_consumers;

+————————————–+———+——-+

events_xxx_summary_by_yyy_by_event_name表的记录成效,运转今后也能够在setup_consumers表中选取UPDATE语句进行动态更新线程配置项

#剥夺全体文件类instruments,使用NAME字段结合like模糊相配:

+————-+—————+————-+———+——-+

+————-+————-+

performance_schema_max_sql_text_length=1024

performance_timers表中记录了server中有何样可用的风浪计时器(注意:该表中的配置项不扶助增加和删除改,是只读的。有怎样计时器就象征目前的本子支持什么计时器),setup_timers配置表中的布署项引用此表中的计时器

mysql>UPDATE setup_instruments SET ENABLED = ‘NO’WHERE NAME LIKE
‘wait/io/file/%’;

在setup_objects中列出的监督检查目标类型,在张开匹配时,performance_schema基于OBJECT_SCHEMA和OBJECT_NAME列依次现在相当,若是未有相配的目的则不会被监视

+————————————————————+———+——-+

还是能够登录到MySQL实例中动用SQL命令查看是还是不是帮忙performance_schema:

留意,那么些运行选项要卓有成效的前提是,须要设置performance_schema=ON。别的,那些运转选项即便不可能运用show
variables语句查看,但我们得以由此setup_instruments和setup_consumers表查询那么些选用钦命的值。

对于表对象相关事件,instruments是不是见效须求看setup_objects与setup_instruments七个表中的配备内容相结合,以明确是还是不是启用instruments以及计时器作用(例如前面说的I/O事件:wait/io/table/sql/handler
instrument和表锁事件:wait/lock/table/sql/handler
instrument,在setup_instruments配置表中也有引人侧目的配置选项):

| TABLE |performance_schema | % |NO | NO |

对setup_consumers表的修改会马上影响监察和控制,setup_consumers字段含义如下:

| events_waits_current |NO |

  • performance_schema_consumer_events_statements_current=TRUE

+——+——+——+———+———+

+—————————–+———+——-+

Engine: PERFORMANCE_SCHEMA

  • performance_schema_consumer_events_statements_history=TRUE

# 插入用户sam@’%’对应ENABLED=NO、HISTOCR-VY=YES的配备行

–performance-schema-instrument= ‘%=OFF’

Rows matched: 40 Changed: 40 Warnings: 0

* 查询语句top
number监察和控制,须求开辟’statement/sql/select’
instruments,然后展开events_statements_xxx表,通过查询performance_schema.events_statements_xxx表的SQL_TEXT字段能够见到原始的SQL语句,查询TIME路虎极光_WAIT字段能够领略总的响应时间,LOCK_TIME字段可以知晓加锁时间(注意时间单位是微秒,须求除以1000000000000才是单位秒)

在源代码中每二个得以落成的instruments,假如该源代码被加载到server中,那么在该表中就会有壹行对应的布局,当启用或试行instruments时,会创立对应的instruments实例,那么些实例在*
_instances表中得以查看到

  • OBJECT_SCHEMA =’literal’ and OBJECT_NAME =’literal’
  • OBJECT_SCHEMA =’literal’ and OBJECT_NAME =’%’
  • OBJECT_SCHEMA =’%’ and OBJECT_NAME =’%’
  • 比如,要相称表对象db一.t1,performance_schema在setup_objects表中先找找“OBJECT_SCHEMA
    = db1”和“OBJECT_NAME = t1”的相配项,然后搜索“OBJECT_SCHEMA =
    db1”和“OBJECT_NAME =%”,然后搜索“OBJECT_SCHEMA =
    %”和“OBJECT_NAME =
    %”。相配顺序很要紧,因为差别的相配行中的ENABLED和TIMED列能够有差异的值,最后会选用二个最纯正的配合项

3rows inset ( 0. 00sec)

-DDISABLE_PSI_STAGE=1 #关闭STAGE事件监视器

新线程音讯的INSTRUMENTED和HISTO奥迪Q5Y列值由setup_actors表中的配置决定。有关setup_actors表的详细新闻参见三.三.伍.

…………

setup_actors用于配置是或不是为新的前台server线程(与客户端连接相关联的线程)启用监视和野史事件日志记录。暗中同意情形下,此表的最大行数为100。能够利用系统变量performance_schema_setup_actors_size在server运行从前改动此表的最大布局行数

对setup_objects表的修改会立即影响对象监察和控制

+————-+—————–+——————+—————-+

图片 1

| wait |CYCLE |

  • 对threads表的拜会不需求互斥体,对server质量影响十分的小。
    而使用INFO途胜MATION_SCHEMA.PROCESSLIST和SHOW
    PROCESSLIST查询线程音信的章程会损耗一定品质,因为他们供给互斥体
  • threads表为各样线程提供附加音讯,例如:它是前台如故后台线程,以及与线程相关联的server内部消息
  • threads表提供有关后台线程的音讯,而INFOCR-VMATION_SCHEMA.PROCESSLIST和SHOW
    PROCESSLIST不能够提供
  • 可以经过threads表中的INSTRUMENTED字段灵活地动态按钮有些线程的监视作用、HISTOHummerH二Y字段灵活地动态按键有些线程的野史事件日志记录效率。要调整新的前台线程的开端INSTRUMENTED和HISTOSportageY列值,通过setup_actors表的HOST、
    USE奥迪Q伍对有个别主机、用户展开配置。要调控已创造线程的募集和历史事件记录作用,通过threads表的INSTRUMENTED和HISTO奔驰G级Y列实行设置
  • 对于INFORMATION_SCHEMA.PROCESSLIST和SHOW
    PROCESSLIST,须要有PROCESS权限,对于threads表只要有SELECT权限就足以查阅全体用户的线程消息

setup_actors表字段含义如下:

2).
wait/lock/metadata/sql/mdl:MDL锁操作相关的instruments

INSERTINTOsetup_actors (HOST, USER, ROLE,ENABLED,HISTORY) VALUES(
‘localhost’, ‘joe’, ‘%’, ‘YES’, ‘YES’);

| PROCEDURE |% | % |YES | YES |

| wait/lock/table/sql/handler |YES | YES |

* 表锁监察和控制须要张开’wait/io/table/sql/handler’
instruments,开启那一个instruments之后在表performance_schema.table_handles中会记录了脚下开发了什么表(实施flush
tables强制关闭展开的表时,该表中的音讯会被清空),哪些表已经被加了表锁(某会话持有表锁时,相关记录行中的OWNE奥迪Q5_THREAD_ID和OWNER_EVENT_ID列值会记录相关的thread id和event
id),表锁被哪些会话持有(释放表锁时,相关记录行中的OWNEPRADO_THREAD_ID和OWNER_EVENT_ID列值会被清零)

| TRIGGER |% | % |YES | YES |

配置项修改示例:

2rows inset ( 0. 00sec)

*************************** 6. row
***************************

  • 行职分令行命令 mysqld –verbose –help |grep performance-schema
    |grep -v ‘–‘ |sed ‘一d’ |sed ‘/[0-9]+/d’; 查看完整的起步选项列表
  • 登入到数据库中采取 show variables like
    ‘%performance_schema%’;语句查看完整的system variables列表
  • 签到到数据库中使用 use
    performance_schema;语句切换来schema下,然后利用show
    tables;语句查看一下完整的table列表,并手工业实行show create table
    tb_xxx;查看表结构,select * from xxx;查看表中的内容

|events_stages_history_long | NO |

| events_statements_history_long |NO |

| wait/synch/mutex/sql/LOCK_global_read_lock |YES | YES |

(1) performance_timers表

+————————————–+———+——-+

threads表字段含义如下:

友谊提示:以下内容阅读起来只怕相比烧脑,内容也较长,提议我们端好板凳,坐下来,点上一支烟,细细品读,那也是读书performance_schema路上只可以过的火焰山,坚贞不屈下去,”翻过这座山,你就能够观望一片海!”

performance_schema_events_statements_history_size=10

# 开启除了当前接连之外的具有前台线程的事件采访

## 使用通配符钦命开启多少个instruments

|idle | MICROSECOND |

+——+——+——+———+———+

  • 除此而外statement(语句)事件之外,还支持:wait(等待)事件、state(阶段)事件、transaction(事务)事件,他们与statement事件一样都有八个运营项分别开始展览配备,但那些等待事件默认未启用,要是急需在MySQL
    Server运行时手拉手运维,则1般要求写进my.cnf配置文件中
  • performance_schema_consumer_global_instrumentation=TRUE

setup_timers表中记录当前采取的轩然大波计时器消息(注意:该表不协理增删记录,只补助修改和查询)

PROCESSLIST_COMMAND: Daemon

# setup_instruments表

#启用全体项目标events的mysys子系统的instruments:

…..

壹).
wait/synch/cond:一个线程使用1个动静来向其余线程发时限信号文告他们正在等候的事情已经发出了。纵然1个线程正在等待这么些情形,那么它能够被这几个情状提醒并一而再往下试行。假如是多少个线程正在等候那么些意况,则那么些线程都会被唤醒,并竞争他们正在等候的财富,该instruments用于采撷某线程等待那些财富时被打断的轩然大波消息。

|events_statements_history | YES |

## 当joe从localhost连接到mysql
server时,则连年符合第一个INSERT语句插入的安插行,threads表中对应配置行的INSTRUMENTED和HISTO翼虎Y列值变为YES

root@localhost : performance_schema 05: 47: 44> update threads
setINSTRUMENTED= ‘NO’wherePROCESSLIST_ID!=connection_id();

一).
wait/lock/table:表锁操作相关的instruments

| statement |NANOSECOND |

壹).
表I/O操作相关的instruments。那几个类型包罗了对持久基表或一时半刻表的行级访问(对数码行获得,插入,更新和删除),对于视图来讲,instruments检查测试时会参照被视图引用的基表访问情形

| MILLISECOND |1036| 1 |168|

–performance_schema

PS:setup_instruments表不允许利用TRUNCATE
TABLE语句

CONNECTION_TYPE: NULL

| PROCEDURE |performance_schema | % |NO | NO |

| OBJECT_TYPE |OBJECT_SCHEMA | OBJECT_NAME |ENABLED | TIMED |

|events_waits_history | NO |

+——+——+——+———+———+