MYSQL效能調優一——架構
阿新 • • 發佈:2022-04-08
1.Mysql的邏輯架構
第一層是基於網路客戶端的連線處理工具架構,並非Mysql獨有,第二層是Mysql的核心部分,大多數核心功能都在這一層,包括查詢、解析、分析、優化等,儲存過程、觸發器和檢視都在這一層實現
第三層包含了儲存引擎,除了InnoDB外,儲存引擎不會去解析SQL。
2.優化與執行
MySQL會解析查詢,並建立內部資料結構(解析樹),然後對其進行各種優化,包括重寫查詢、決定表的讀取順序,以及選擇合適的索引等。使用者可以通過特殊的關鍵字提示(hint)優化器,影響它的決策過程。也可以請求優化器解釋(explain)優化過程的各個因素,使使用者可以知道伺服器是如何進行優化決策的,並提供一個參考基準,便於使用者重構查詢和schema、修改相關配置,使應用盡可能高效執行。且優化器不會關心下層的儲存引擎是什麼,但是儲存引擎會影響優化查詢的效能
3.讀寫鎖(共享鎖和排他鎖)
讀鎖即共享,同一時間有多個程序、執行緒可以獲取這個鎖,但是寫鎖即排他,僅有一個程序、執行緒能夠執行寫入。大多數時候,Mysql鎖的內部管理是透明的。
4.粒度鎖(表級鎖、行級鎖)
表鎖會鎖定整張表,一個使用者在對錶進行寫操作時,需要先獲得寫鎖,且寫鎖會優先搶佔而讀鎖不能。
行鎖只在儲存引擎層實現,而MYSQL伺服器層沒有實現。
5.事務
一個事務的所有操作,要麼同時成功要麼同時失敗。其具有原子性、一致性、隔離性和永續性。
6.隔離級別
RU:未提交讀,即事務中的修改即使沒有提交對其他事務也是可見的,會導致髒讀、幻讀、不可重複讀
RC:提交讀,一個事務提交了的修改對其他事務才是可見的,但是會導致不可重複讀
RR:可重複讀
S:序列化