您的位置:永利国际官网登录 > 永利国际官网 > performance_schema全方位介绍

performance_schema全方位介绍

发布时间:2019-07-19 07:16编辑:永利国际官网浏览(128)

    原标题:配置详解 | performance_schema全方位介绍(二)

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

          performance-schema最早在MYSQL 5.5中出现,而现行反革命5.6,5.7中performance-Schema又增加了更加的多的监督检查项,总结音信也更增进,越来越有ORACLE-AW奥迪Q3总计音讯的赶脚,真乃DBA童鞋进行质量检查判断深入分析的教义。本文首要讲Performance-Schema中的配置表,通过安顿表能大致精通performance-schema的全貌,为连续使用和深入通晓做希图。

    配置表

    Performance-Schema中驷不比舌有5个布局表,具体如下:

    [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的消息。第三档期的顺序是语句维度,富含events_waits_current,events_stages_current和events_statements_current,分别用于总计wait,stages和statement音讯,第四等级次序是历史表新闻,首要不外乎xxx_history和xxx_history_long。

    3.setup_instruments表用于配置一条条切实的instrument,首要涵盖4大类: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六18个,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语句直接改变配置表,而且修改后可以登时生效,但这种艺术必需得运转服务器后才得以修改,并且不也许持久化,重启后,又得重复设置二遍。从5.6.4初叶提供了my.cnf的配备形式,格式如下:

    1.装置搜聚的instrument
    performance_schema_instrument='instrument_name=value'
    (1)张开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处于第4层,因而设置它时,要保险events_statements_current,thread_instrumentation和global_instrumentation的ENABLED状态都为YES,技巧卓有成效。由于私下认可thread_instrumentation和global_instrumentation都以YES,因而只须求出示设置events_waits_current和events_waits_current即可。

    3.装置总计表大小
    所有的performance_schema表均采用PE逍客FORMANCE_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.6,5.7中performance-Schema又增添了更加的多的监察和控制项,统...

    MySQL Performance-Schema(一) 配置表

    performance-schema最早在MYSQL 5.5中出现,而以往5.6,5.7中performance-Schema又增多了越来越多的督察项,总结新闻也更拉长,更加的有ORACLE-AWRubicon总括信息的赶脚,真乃DBA童鞋进行品质会诊剖析的教义。本文主要讲Performance-Schema中的配置表,通过配备表能差相当少驾驭performance-schema的全貌,为后续使用和深入理解做策画。

     

    配置表

     

    Performance-Schema中首要性有5个布局表,具体如下:

     

    [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中。12个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的消息。第三档次是语句维度,包蕴events_waits_current,events_stages_current和events_statements_current,分别用于总结wait,stages和statement音信,第四等级次序是历史表音讯,首要包涵xxx_history和xxx_history_long。

     

    3.setup_instruments表用于配置一条条有血有肉的instrument,重要含有4大类: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富含1陆19个,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语句直接修改配置表,并且修改后得以立刻生效,但这种办法必需得运维服务器后才干够修改,况兼不或许持久化,重启后,又得重新安装贰遍。从5.6.4初阶提供了my.cnf的布署格局,格式如下:

     

    1.设置搜罗的instrument

    performance_schema_instrument='instrument_name=value'

    (1)张开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处于第4层,由此设置它时,要保管events_statements_current,thread_instrumentation和global_instrumentation的ENABLED状态都为YES,本领见效。由于暗中认可thread_instrumentation和global_instrumentation都是YES,因而只须要呈现设置events_waits_current和events_waits_current即可。

     

    3.设置总结表大小

    所有的performance_schema表均选用PERubiconFORMANCE_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,5.7中performance-Schema又增添了更加多的监督项,总括音信也更丰裕...

    图片 1

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

    产品:沃趣科技

    IT从业多年,历任运行程序员、高档运行程序员、运转老董、数据库程序猿,曾涉足版本发表连串、轻量级监察和控制系统、运营处理平台、数据库管理平台的设计与编写制定,了解MySQL连串布局,Innodb存款和储蓄引擎,喜好专研开源技艺,追求完善。

    | 导语

    在上一篇 《初相识 | performance_schema全方位介绍》 中简介了哪些铺排与运用performance_schema,相信大家对performance_schema可认为我们提供怎么样的性质数据现已有四个起来的认知,后天将辅导大家齐声踏上密密麻麻第二篇的征途(全系共7个篇章),在这一期里,大家将为我们精细入微授课performance_schema配置格局以及种种配置表的效果与利益。上边,请随行大家一并起来performance_schema系统的读书之旅吧。

    | 基本概念

    instruments:生产者,用于搜集MySQL 中熟视无睹的操作发生的风浪音讯,对应配备表中的配备项大家得以称呼监控采撷配置项,以下聊到生产者均统称为instruments

    consumers:花费者,对应的顾客表用于储存来自instruments收罗的数码,对应布署表中的布置项我们得以叫做花费存款和储蓄配置项,以下谈到花费者均统称为consumers

    友谊提醒:以下内容阅读起来只怕比较烧脑,内容也较长,提议我们端好板凳,坐下来,点上一支烟,细细品读,那也是学习performance_schema路上只可以过的九峰山,持之以恒下去,"翻过那座山,你就足以看出一片海!"

    | 编写翻译时计划

    在过去,我们认为自行编写翻译安装MySQL其性情要优化官方编写翻译好的二进制包、rpm包等。或许在MySQL早期的版本中有那般的意况, 但随着MySQL版本不断迭代,产业界十分多人亲测证实,近年来的MySQL版本并一纸空文活动编写翻译安装品质比官方编写翻译好的二进制包品质高,所以,平时情状下,大家不提出去费用数十分钟来编写翻译安装MySQL,因为在普及铺排的景观,此举特别浪费时间(须求经过编写翻译安装的秘技轻巧模块的现象除此之外)

    能够利用cmake的编写翻译选项来自行决定你的MySQL实例是或不是匡助performance_schema的某些等待事件种类,如下:

    shell> cmake .

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

    -DDISABLE_PSI_STATEMENT=1 #闭馆STATEMENT事件监视器

    细心:纵然大家得以经过cmake的编写翻译选项关闭掉某个performance_schema的成效模块,不过,日常我们不建议那样做,除非你可怜领会后续不也许采用到那一个功用模块,否则继续想要使用被编写翻译时关闭的模块,还要求重新编写翻译。

    当大家接手三个外人安装的MySQL数据库服务器时,恐怕您并不知底自个儿安装的MySQL版本是还是不是协助performance_schema时,大家得以经过mysqld命令查看是不是扶助Performance Schema

    # 假设开掘performance_schema开端的多少个选项,则代表近来mysqld帮忙performance_schema,如果没有发觉performance_schema相关的选项,表达当前数据库版本不协理performance_schema,你恐怕必要晋级mysql版本:

    shell> mysqld --verbose -- help

    ...

    --performance_schema

    Enable the performance schema.

    --performance_schema_events_waits_history_long_size= #

    Number of rows inevents_waits_history_long.

    还足以登入到MySQL实例中动用SQL命令查看是还是不是协理performance_schema:

    # Support列值为YES表示数据库补助,不然你可能须要进步mysql版本:

    mysql> SHOW ENGINESG

    ...

    admin@localhost : (none) 12:54:00> show engines;

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

    Engine: PERFORMANCE_SCHEMA

    Support: YES

    Comment: Performance Schema

    Transactions: NO

    XA: NO

    Savepoints: NO

    9 rows in set (0.00 sec)

    留意:在mysqld选项或show engines语句输出的结果中,倘使见到有performance_schema相关的音信,并不表示曾经启用了performance_schema,仅仅只是代表数据库补助,借使须求启用它,还亟需在服务器运转时使用系统参数performance_schema=on(MySQL 5.7事先的本子默许关闭)显式开启

    |运转时配置

    performance_schema中的配置是保存在内部存款和储蓄器中的,是易失的,也正是说保存在performance_schema配置表(本章后续内容会讲到)中的配置项在MySQL实例结束时会全部遗失。所以,假若想要把安顿项悠久化,就要求在MySQL的配置文件中央银行使运转选项来长久化配置项,让MySQL每回重启都自动加载配置项,而无需每回重启都再重新配置。

    (1) 运行选项

    performance_schema有何样运行选项呢?我们得以透过如下命令行命令举行查看:

    [root@localhost ~] # mysqld --verbose --help |grep performance-schema |grep -v '--' |sed '1d' |sed '/[0-9] /d'

    ......

    performance-schema-consumer-events-stages-current FALSE

    performance-schema-consumer-events-stages-history FALSE

    performance-schema-consumer-events-stages-history- longFALSE

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

    performance-schema-consumer-events-statements-history TRUE

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

    performance-schema-consumer-events-transactions-current FALSE

    performance-schema-consumer-events-transactions-history FALSE

    performance-schema-consumer-events-transactions-history- longFALSE

    performance-schema-consumer-events-waits-current FALSE

    performance-schema-consumer-events-waits-history FALSE

    performance-schema-consumer-events-waits-history- longFALSE

    performance-schema-consumer-global-instrumentation TRUE

    performance-schema-consumer-statements-digest TRUE

    performance-schema-consumer-thread-instrumentation TRUE

    performance-schema-instrument

    ......

    上面将对这一个运营选项实行简单描述(这个运维选项是用来内定consumers和instruments配置项在MySQL运行时是不是跟随展开的,之所以称为运营选项,是因为这个须要在mysqld运转时就须要经过命令行钦赐恐怕要求在my.cnf中钦赐,运维未来经过show variables命令不能够查看,因为她们不属于system variables)

    • performance_schema_consumer_events_statements_current=TRUE

    是不是在mysql server运转时就开启events_statements_current表的记录成效(该表记录当前的说话事件音信),运行之后也足以在setup_consumers表中运用UPDATE语句实行动态更新setup_consumers配置表中的events_statements_current配置项,默许值为TRUE

    • performance_schema_consumer_events_statements_history=TRUE

    与performance_schema_consumer_events_statements_current选项类似,但该选择是用于配置是还是不是记录语句事件短历史消息,默以为TRUE

    • performance_schema_consumer_events_stages_history_long=FALSE

    与performance_schema_consumer_events_statements_current选项类似,但该选拔是用来配置是还是不是记录语句事件长历史消息,默感觉FALSE

    • 除开statement(语句)事件之外,还接济:wait(等待)事件、state(阶段)事件、transaction(事务)事件,他们与statement事件同样都有多个运行项分别开始展览布局,但那几个等待事件暗中认可未启用,假如须求在MySQL Server运营时协同运行,则平时供给写进my.cnf配置文件中
    • performance_schema_consumer_global_instrumentation=TRUE

    是不是在MySQL Server运营时就开启全局表(如:mutex_instances、rwlock_instances、cond_instances、file_instances、users、hostsaccounts、socket_summary_by_event_name、file_summary_by_instance等好些个的大局对象计数总计和事件汇总总括消息表 )的记录成效,运行之后也得以在setup_consumers表中使用UPDATE语句进行动态更新全局配置项

    暗许值为TRUE

    • performance_schema_consumer_statements_digest=TRUE

    是或不是在MySQL Server运营时就开启events_statements_summary_by_digest 表的笔录功用,运维之后也足以在setup_consumers表中应用UPDATE语句举办动态更新digest配置项

    暗中同意值为TRUE

    • performance_schema_consumer_thread_instrumentation=TRUE

    是还是不是在MySQL Server运转时就拉开

    events_xxx_summary_by_yyy_by_event_name表的记录效能,运行之后也可以在setup_consumers表中采纳UPDATE语句举行动态更新线程配置项

    暗许值为TRUE

    • performance_schema_instrument[=name]

    是还是不是在MySQL Server运维时就启用某个收集器,由于instruments配置项多达数千个,所以该配置项帮助key-value方式,还支持%号实行通配等,如下:

    # [=name]能够钦点为具体的Instruments名称(可是那样假设有多个要求钦定的时候,就要求利用该选项数十次),也足以利用通配符,能够钦命instruments同样的前缀 通配符,也能够使用%代表享有的instruments

    ## 钦赐开启单个instruments

    --performance-schema-instrument= 'instrument_name=value'

    ## 使用通配符内定开启几个instruments

    --performance-schema-instrument= 'wait/synch/cond/%=COUNTED'

    ## 按键全部的instruments

    --performance-schema-instrument= '%=ON'

    --performance-schema-instrument= '%=OFF'

    留意,那些运维选项要立竿见影的前提是,要求设置performance_schema=ON。其他,那些运行选项纵然不恐怕利用show variables语句查看,但我们能够透过setup_instruments和setup_consumers表查询这个选取内定的值。

    (2) system variables

    与performance_schema相关的system variables能够应用如下语句查看,这一个variables用于限定consumers表的存放限制,它们都以只读变量,须要在MySQL运转从前就设置好这么些变量的值。

    root@ localhost: (none) 11: 43: 29> show variables like '%performance_schema%';

    .....

    42 rowsinset(0 .01sec)

    下边,大家将对这么些system variables(以下称为变量)中多少个必要关怀的进行简要表达(在那之中绝大许多变量是-1值,代表会自动调解,没有须求太多关心,别的,大于-1值的变量在超越四分之二时候也够用,借使无极度供给,不提出调度,调度那几个参数会大增内部存款和储蓄器使用量)

    performance_schema=ON

    • 控制performance_schema效率的开关,要采纳MySQL的performance_schema,供给在mysqld运维时启用,以启用事件访谈作用
    • 该参数在5.7.x此前协助performance_schema的版本中暗中同意关闭,5.7.x版本起先暗中认可开启
    • 只顾:假使mysqld在初叶化performance_schema时意识不能分配任何相关的里边缓冲区,则performance_schema将自动禁止使用,并将performance_schema设置为OFF

    performance_schema_digests_size=10000

    • 控制events_statements_summary_by_digest表中的最大行数。借使产生的话语摘抄消息当先此最大值,便无可奈何持续存入该表,此时performance_schema会增添状态变量

    performance_schema_events_statements_history_long_size=10000

    • 控制events_statements_history_long表中的最大行数,该参数调控全数会话在events_statements_history_long表中可见存放的总事件记录数,超越那么些界定之后,最早的记录将被遮住
    • 全局变量,只读变量,整型值,5.6.3本子引进 * 5.6.x版本中,5.6.5及其以前的版本默以为一千0,5.6.6及其之后的版本暗中认可值为-1,平时情状下,自动测算的值都是10000 * 5.7.x版本中,暗中同意值为-1,常常景况下,自动测算的值都以10000

    performance_schema_events_statements_history_size=10

    • 控制events_statements_history表中单个线程(会话)的最大行数,该参数调控单个会话在events_statements_history表中可见寄放的事件记录数,当先那几个范围之后,单个会话最早的笔录将被遮住
    • 全局变量,只读变量,整型值,5.6.3版本引进 * 5.6.x版本中,5.6.5及其以前的版本默感到10,5.6.6会同之后的版本暗中同意值为-1,平时状态下,自动估测计算的值都以10 * 5.7.x版本中,暗中认可值为-1,经常状态下,自动测算的值都以10

    除开statement(语句)事件之外,wait(等待)事件、state(阶段)事件、transaction(事务)事件,他们与statement事件一样都有多少个参数分别进行仓库储存限制配置,有野趣的同室自行钻研,这里不再赘言

    performance_schema_max_digest_length=1024

    • 用来调节原则情势的SQL语句文本在存入performance_schema时的限定长度,该变量与max_digest_length变量相关(max_digest_length变量含义请自行查阅相关资料)
    • 全局变量,只读变量,默许值1024字节,整型值,取值范围0~1048576,5.6.26和5.7.8本子中引进

    performance_schema_max_sql_text_length=1024

    • 决定期存款入events_statements_current,events_statements_history和events_statements_history_long语句事件表中的SQL_TEXT列的最徐熙媛(英文名:Barbie Hsu)女士QL长度字节数。 赶上系统变量performance_schema_max_sql_text_length的一部分将被撤销,不会记录,一般情况下无需调动该参数,除非被截断的一些与其他SQL比起来有十分大距离
    • 全局变量,只读变量,整型值,暗中同意值为1024字节,取值范围为0~1048576,5.7.6版本引进
    • 跌落系统变量performance_schema_max_sql_text_length值能够减去内部存款和储蓄器使用,但借使聚集的SQL中,被截断部分有比较大差异,会促成未有章程再对这几个有异常的大距离的SQL举办区分。 扩大该连串变量值会加多内部存款和储蓄器使用,但对于集中SQL来说能够更加精准地区分差异的有个别。

    | 运维时布署

    在MySQL运行以后,大家就不能够使用运行选项来开关相应的consumers和instruments了,此时,我们怎么着依据自个儿的需求来灵活地开关performance_schema中的采撷音信呢?(比如:暗中认可配置下洋洋配备项尚未开启,大家只怕必要即时去修改配置,再如:高并发场景,多量的线程连接到MySQL,试行美妙绝伦的SQL时产生大批量的风云新闻,而小编辈只想看某八个会话发生的平地风波消息时,也恐怕需求即时去修改配置),我们可以通过修改performance_schema下的几张配置表中的安插项实现

    那一个铺排表中的布署项之间存在着关系关系,遵照布置影响的先后顺序,可整理为如下图(该表仅表示个人知道):

    图片 2

    (1) performance_timers表

    performance_timers表中记录了server中有哪些可用的风浪放大计时器(注意:该表中的配置项不援救增加和删除改,是只读的。有怎么样电火花计时器就表示近些日子的本子协助什么放大计时器),setup_timers配置表中的陈设项援引此表中的反应计时器

    各类沙漏的精度和数码相关的特点值会有所不相同,能够通过如下查询语句查看performance_timers表中著录的反应计时器和血脉相通的风味音讯:

    mysql> SELECT * FROM performance_timers;

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

    | TIMER_NAME |TIMER_FREQUENCY | TIMER_RESOLUTION |TIMER_OVERHEAD |

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

    |CYCLE | 2389029850 |1| 72 |

    | NANOSECOND |1000000000| 1 |112|

    |MICROSECOND | 1000000 |1| 136 |

    | MILLISECOND |1036| 1 |168|

    |TICK | 105 |1| 2416 |

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

    performance_timers表中的字段含义如下**:**

    • TIMER_NAME:表示可用停车计时器名称,CYCLE是指根据CPU(管理器)周期计数器的电火花计时器。在setup_timers表中得以运用performance_timers表中列值不为null的反应计时器(倘若performance_timers表中有某字段值为NULL,则意味该计时器恐怕不帮助当前server所在平台)
    • TIMER_FREQUENCY:表示每分钟对应的计时器单位的数额(即,相对于每秒时间换算为相应的停车计时器单位以往的数值,比如:每秒=一千阿秒=1000000飞秒=一千000000阿秒)。对于CYCLE电磁照望计时器的换算值,平时与CPU的频率相关。对于performance_timers表中查看到的CYCLE电火花计时器的TIME奥迪Q7_FREQUENCY列值 ,是凭仗2.4GHz管理器的系统上得到的预设值(在2.4GHz管理器的连串上,CYCLE恐怕类似2伍仟00000)。NANOSECOND 、MICROSECOND 、MILLISECOND 机械漏刻是依靠固定的1秒换算而来。对于TICK电火花计时器,TIME路虎极光_FREQUENCY列值或者会因平台而异(举个例子,某个平台利用九拾九个tick/秒,有些平台利用一千个tick/秒)
    • TIMER_RESOLUTION:反应计时器精度值,表示在种种沙漏被调用时额外扩充的值(即利用该机械漏刻时,反应计时器被调用二遍,必要优良扩展的值)。假诺放大计时器的分辨率为10,则其放大计时器的时刻值在沙漏每一次被调用时,也正是TIME奇骏_FREQUENCY值 10
    • TIMER_OVELacrosseHEAD:表示在动用沙漏获取事件时支付的细微周期值(performance_schema在初叶化时期调用计时器贰拾遍,选用二个最小值作为此字段值),每种事件的时日开销值是反应计时器呈现值的两倍,因为在事件的起始和结束时都调用沙漏。注意:机械漏刻代码仅用于帮忙计时事件,对于非计时类事件(如调用次数的总结事件),这种放大计时器总结开销方法不适用
    • PS:对于performance_timers表,不容许利用TRUNCATE TABLE语句

    (2)**setup_timers**表

    setup_timers表中记录当前使用的风浪放大计时器音信(注意:该表不协助增加和删除记录,只帮助修改和查询)

    能够通过UPDATE语句来改动setup_timers.TIMER_NAME列值,以给差别的事件体系选项分裂的电火花计时器,setup_timers.TIMER_NAME列有效值来自performance_timers.TIMER_NAME列值。

    对setup_timers表的改造会立马影响监察和控制。正在实行的平地风波只怕会利用修改在此以前的沙漏作为初叶时间,但恐怕会采取修改今后的新的反应计时器作为完毕时间,为了防止计时器改变后可能发生时间消息采摘到不可预测的结果,请在退换之后接纳TRUNCATE TABLE语句来重新初始化performance_schema中相关表中的总结新闻。

    mysql> SELECT * FROM setup_timers;

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

    | NAME |TIMER_NAME |

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

    |idle | MICROSECOND |

    | wait |CYCLE |

    |stage | NANOSECOND |

    | statement |NANOSECOND |

    本文由永利国际官网登录发布于永利国际官网,转载请注明出处:performance_schema全方位介绍

    关键词:

上一篇:没有了

下一篇:没有了