《高效能MySQL》學習筆記

來源:互聯網
上載者:User

標籤:enc   檢查   str   多個   version   兩種   取數   系統效能   持久   

第1章 MySQL架構與曆史1.2 並發控制

  MySQL在兩個層面實現並發控制:伺服器層與儲存引擎層。

 

讀鎖和寫鎖:

  在處理並發讀或寫時,可以通過實現一個由兩種鎖組成的系統來解決問題。

  這兩種鎖通常被稱為共用鎖定和獨佔鎖定,或者稱為讀鎖和寫鎖

  讀鎖:是共用的,或者說是相互不阻塞的,多個客戶可以在同時讀取同一資料。

  寫鎖:是排他的,一個寫鎖會阻塞其他的寫鎖和讀鎖,同一時刻只能有一個使用者能夠寫入,並防止其他使用者讀取正在寫入的資料。

 

鎖粒度:

  鎖粒度:指加鎖的對象的大小。顯然,鎖的粒度越小,並發控制效率越高。

  鎖的各種操作,包括獲得鎖、檢查鎖和釋放鎖等,都會增加系統開銷。

  因此,如果系統花費大量時間來管理鎖,而不是用來擷取資料,就會影響系統效能。

  鎖策略:在鎖的開銷和安全性之間尋求平衡。

  有兩種常見的鎖策略,表鎖和行級鎖

  表鎖:開銷較小,但是並發控制不好。

  行級鎖:可以很好地實現並發控制,但是開銷比較大。

  行級鎖是在 mysql 的儲存引擎層實現,沒有在伺服器層實現,innodb 中實現了行級鎖。

 

1.3 事務

  事務:是一組原子性的SQL語句,事務內的語句,要麼全部執行成功,要麼全部執行失敗。

 

事務的四大特性ACID

  原子性:整個事務要麼全部提交成功,要麼全部失敗復原,不可以只執行一部分。

  一致性:資料庫總是從一個一致狀態轉換到另一個一致狀態。(轉賬失敗後,卡裡的錢應該不變,不能少了)

  隔離性:事務提交之前所做的修改對其他事務是不可見的。(通常來說)

  持久性:事務提交之後,所做的修改會持久化到資料庫中。

  交易處理也會使系統做更多額外工作,使用者可以根據業務是否需要進行交易處理,選擇合適的儲存引擎。

 

四種事務的隔離等級:

READ UNCOMMITTED (未提交讀)

  事務中的修改,即使沒提交,對其他事務也是可見的。

  事務可以讀取未提交的資料,也叫髒讀,一般很少使用

 

READ COMITTED (提交讀)

  一個事務開始時,只能看見已經提交的修改,並且所做的修改對其他事務不可見。

  這個層級有時候也叫不可重複讀取,因為兩次執行同樣的查詢,可能會得到不同的結果。

  事務A前後執行兩次查詢,前一次讀取某條記錄之後,事務B對其進行了修改並提交,這時當A再次讀取該資料的時候就會發現與之前讀取的結果不一樣。

  是大多數資料庫預設的隔離等級(但MySQL不是)。

 

REPEATABLE READ (可重複讀)

  保證了同一個事務多次讀取同樣記錄的結果是一致的。但無法解決幻讀。

  幻讀:事務A讀取某個範圍內的記錄時,事務B又在該範圍插入入新的記錄,當事務A再次讀取時,會產生幻行。

  另一種幻讀情況:事務A對資料庫所有行做了修改時,事務B對向資料庫中插入了一行新的資料。這時A發現還有沒有修改的記錄,就像發生幻覺一樣。

  InnoDB儲存引擎通過多版本並發控制(MVCC,Multiversion Concurrency Control)機制解決了該問題。

  這是MySQL  (InnoDB引擎)的預設交易隔離等級。

 

SERIALIZABLE (可序列化)

  強制事務串列執行,在讀取每行資料上都加鎖,可能產生大量的逾時和鎖爭用問題。

  只有在非常需要確保資料的一致性,且可以接受沒有並發的情況下才考慮使用該層級。





 

《高效能MySQL》學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.