您好,登錄后才能下訂單哦!
這篇文章主要介紹了MYSQL中監控參數的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
問:怎么監控InnoDB日志緩沖區,設置的是否合適
當在MySQL中對InnoDB表進行更改時,這些更改首先存儲在InnoDB日志緩沖區的內存中,然后寫入InnoDB日志文件,這些文件通常被稱為重做日志。而如果有跡象表明innodb_log_buffer_size變量設置得太低,那么可以調整它來優化性能。
在調整之前,首先要知道當前的 innodb log buffer 到底使用了多少,我們可以使用下面的方法來進行監控
select count from information_schema.innodb_metrics where name ='log_lsn_current';
select count from information_schema.innodb_metrics where name ='log_lsn_last_flush' ;
將兩個值相減,就能得到當前有多少 lsn 還沒有刷入到磁盤,也就得到 innodb log buffer 使用情況。
從上邊的使用量上看,進行一個時間段的評估就能知道這個服務器對應的配置是否合適。
問:在接手一個MYSQL 系統后(半路來的),你怎么快速的通過監控來知道這個系統的關于 page merge page splits 的情況, 到最終的整體系統設計十分OK? (僅作為參考和發現問題使用)
首先我們要有一個共同的共識,數據庫處理數據都是在內存中處理的,而數據在內存中處理不是按照 ROW 而是按照 page 的方式來處理的。用表和行來組織數據時,InnoDB用分支、頁面和記錄來組織數據。記住InnoDB不能在單行的基礎上工作是非常重要的。InnoDB總是對頁面進行操作。加載頁面后,它將掃描頁面以查找請求的行/記錄。
根據MERGE_THRESHOLD的值的配置情況,我們需要了解到 mysql 整體的頁合并和頁分離的情況。
一般來說merge_threshold 設置時 50% , 而太小的 merge_threshold 會導致在整體數據量不變化的情況下,整體的數據占用空間變大,相對的就是內存的占用會變大。
所以監控也的merge 和 split 是查看當前的 merge_threshold 十分合適以及系統整體的運行情況的一個指標(例如這個系統設計的,都是物理刪,沒有邏輯刪,或經常UPDATE 的字段原先小,UPDATE 后都變得很大),這樣的情況
就需要看
index page merge attempts & index page merge successful 以及 splits
頻繁的 merge 和 splits 本身就對數據庫是一種性能上的影響,并且在操作過程中會影響 DML的相關操作。
另外借一篇國外文章中關于主鍵設計的對于頁分割的影響來看,設計有缺陷的INNODB 的主鍵表,頁splits 的操作數要比正常的,多2倍或更多。
通過這個問題,通過這個問題還可以導引出,在MYSQL 中過多的索引并由于表當初的設計的問題,會導致更差的性能問題,所以針對MYSQL 表的設對比其他的數據庫設計要更嚴謹。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“MYSQL中監控參數的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。