1. 程式人生 > >MySQL Performance schema設定的一些建議選項

MySQL Performance schema設定的一些建議選項

MySQL 的Performance Schema由來已久,但由於記憶體消耗,效能影響等原因,導致其始終無法進入主流的MySQL預設配置,對MySQL的問題診斷以及處理造成很多不利的影響。

一般而言,Performance Schema會對效能造成影響,比如row mutex的位置。實際上,MySQL經常出現問題的地方,很多時候是在Server層,在這一層,很多Performance Schema的設定並不會導致效能的下降(或者明顯下降)。

下文為總結出來的,推薦開啟的Performance Schema選項,開啟方式為update performance_schema.setup_instruments set enable=’yes’ where name=’xxx’。 

推薦開啟

# MDL

MySQL 最著名的Server層鎖之一,MDL鎖管理著表結構變更的臨界點,常常會遇到,alter 表的時候,發現需要等待,但偏偏發現不了是誰持有。

name like ‘%mdl%’

# Variables 

MySQL操作set global variable的時候,有時候發現等待時間比較長的時候,會不會心裡發涼?推薦開啟。

name like ‘%variables%’

# Slave 

主從結構下,Slave依賴的IO以及SQL,以及Master資訊之間,有一套精密的鎖結構保障安全,如果受到干擾,就會容易出現嚴重的複製故障。

Slave

name like ‘%Master_info%’

name like ‘%Relay_log_info%’

## Alter 相關

alter作為低頻但重要操作,沒有保障的執行,是非常危險的一種情況。

name like ‘%alter%’

Alter

必要情況下開啟

以下情況,先參考下當前資料的以下變數,之後操作:

些值直接關係到Performacne Schema的記憶體佔用大小。

開啟系列

update performance_schema.setup_instruments set enable=’yes’ where name like ‘xxx%’

## SQL語句系列

以statement/sql以及statement/com代表的系列,如果認為需要開啟,可以全部開啟,會儲存所有執行的SQL語句,上限為前面所定,其中也加入了一部分執行計劃的相關資訊。

## SQL執行系列 

以stage/sql/代表的系列,記錄SQL執行的每一個階段,是MySQL僅有的,在SQL執行完成後,一定程度上追查SQL執行計劃的方式,

## 檔案IO系列

wait/io代表的的系列,直接看具體檔案IO的狀況,在高負載資料庫的診斷中,是作用相當大的設定。

總結

Performance Schema作為MySQL推廣已久的效能判斷框架,如果足夠信任的話,放大招 update performance_schema.setup_instruments set enable=’yes’ ,直接開啟所有Performance Schema的可用選項,對效能有較大影響,不推薦全部開啟。

作者:劉偉

文章來自微信公眾號:資料和雲