1. 程式人生 > 其它 >MYSQL效能調優一——架構

MYSQL效能調優一——架構

1.Mysql的邏輯架構

  

 

   第一層是基於網路客戶端的連線處理工具架構,並非Mysql獨有,第二層是Mysql的核心部分,大多數核心功能都在這一層,包括查詢、解析、分析、優化等,儲存過程、觸發器和檢視都在這一層實現

第三層包含了儲存引擎,除了InnoDB外,儲存引擎不會去解析SQL。

2.優化與執行

  MySQL會解析查詢,並建立內部資料結構(解析樹),然後對其進行各種優化,包括重寫查詢、決定表的讀取順序,以及選擇合適的索引等。使用者可以通過特殊的關鍵字提示(hint)優化器,影響它的決策過程。也可以請求優化器解釋(explain)優化過程的各個因素,使使用者可以知道伺服器是如何進行優化決策的,並提供一個參考基準,便於使用者重構查詢和schema、修改相關配置,使應用盡可能高效執行。且優化器不會關心下層的儲存引擎是什麼,但是儲存引擎會影響優化查詢的效能

。對於SELECT語句,解析查詢前Mysql會首先檢查查詢快取,在裡面找到則不必執行查詢解析、優化和執行的過程

3.讀寫鎖(共享鎖和排他鎖)

  讀鎖即共享,同一時間有多個程序、執行緒可以獲取這個鎖,但是寫鎖即排他,僅有一個程序、執行緒能夠執行寫入。大多數時候,Mysql鎖的內部管理是透明的

4.粒度鎖(表級鎖、行級鎖)

  表鎖會鎖定整張表,一個使用者在對錶進行寫操作時,需要先獲得寫鎖,且寫鎖會優先搶佔而讀鎖不能。

  行鎖只在儲存引擎層實現,而MYSQL伺服器層沒有實現

5.事務

  一個事務的所有操作,要麼同時成功要麼同時失敗。其具有原子性、一致性、隔離性和永續性。

6.隔離級別

  RU:未提交讀,即事務中的修改即使沒有提交對其他事務也是可見的,會導致髒讀、幻讀、不可重複讀

  RC:提交讀,一個事務提交了的修改對其他事務才是可見的,但是會導致不可重複讀

  RR:可重複讀

  S:序列化