MySQL的PerformanceSchema由来已久,但由于内存消耗,性能影响等原因,导致其始终无法进入主流的MySQL默认配置,对MySQL的问题诊断以及处理造成很多不利的影响。
一般而言,PerformanceSchema会对性能造成影响,比如rowmutex的位置。实际上,MySQL经常出现问题的地方,很多时候是在Server层,在这一层,很多PerformanceSchema的设置并不会导致性能的下降(或者明显下降)。
下文为总结出来的,推荐开启的PerformanceSchema选项,开启方式为updateperformance_schema.setup_instrumentssetenable='yes'wherename='**'。 #MDL MySQL最著名的Server层锁之一,MDL锁管理着表结构变更的临界点,常常会遇到,alter表的时候,发现需要等待,但偏偏发现不了是谁持有。 namelike'%mdl%' #Variables MySQL操作setglobalvariable的时候,有时候发现等待时间比较长的时候,会不会心里发凉?推荐打开。 namelike'%variables%' #Slave 主从结构下,Slave依赖的IO以及SQL,以及Master信息之间,有一套精密的锁结构保障安全,如果受到干扰,就会容易出现严重的复制故障。 namelike'%Master_info%' namelike'%Relay_log_info%' ##Alter相关 alter作为低频但重要操作,没有保障的执行,是非常危险的一种情况。 namelike'%alter%' 以下情况,先参考下当前数据的以下变量,之后操作: 这些值直接关系到PerformacneSchema的内存占用大小。
updateperformance_schema.setup_instrumentssetenable='yes'wherenamelike'**%' ##SQL语句系列 以statement/sql以及statement/com代表的系列,如果认为需要打开,可以全部打开,会存储所有执行的SQL语句,上限为前面所定,其中也加入了一部分执行计划的相关信息。
##SQL执行系列 以stage/sql/代表的系列,记录SQL执行的每一个阶段,是MySQL仅有的,在SQL运行完成后,一定程度上追查SQL执行计划的方式,
##文件IO系列 wait/io代表的的系列,直接看具体文件IO的状况,在高负载数据库的诊断中,是作用相当大的设置。 PerformanceSchema作为MySQL推广已久的性能判断框架,如果足够信任的话,放大招updateperformance_schema.setup_instrumentssetenable='yes',直接打开所有PerformanceSchema的可用选项,对性能有较大影响,不推荐全部打开。
加入"云和恩墨大讲堂"微信群,参与讨论学习 搜索 盖国强(Eygle)微信号:eyygle,或者扫描下面二维码,备注:云和恩墨大讲堂,即可入群。每周与千人共享免费技术分享,与讲师在线讨论。
|
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|