mysql鎖機制

來源:互聯網
上載者:User

標籤:

MySQL 各儲存引擎使用了三種類型(層級)的鎖定機制:行級鎖定,頁級鎖定和表級鎖
定。


● 行級鎖定(row-level)
行級鎖定最大的特點就是鎖定對象的顆粒度很小,也是目前各大資料庫管理軟體所實現的鎖定顆粒
度最小的。由於鎖定顆粒度很小,所以發生鎖定資源爭用的機率也最小,能夠給予應用程式儘可能大的
並發處理能力而提高一些需要高並發應用系統的整體效能。
雖然能夠在並發處理能力上面有較大的優勢,但是行級鎖定也因此帶來了不少弊端。由於鎖定資源
的顆粒度很小,所以每次擷取鎖和釋放鎖需要做的事情也更多,帶來的消耗自然也就更大了。此外,行
級鎖定也最容易發生死結。


● 表級鎖定(table-level)
和行級鎖定相反,表層級的鎖定是MySQL 各儲存引擎中最大顆粒度的鎖定機制。該鎖定機制最大的
特點是實現邏輯非常簡單,帶來的系統負面影響最小。所以擷取鎖和釋放鎖的速度很快。由於表級鎖一
次會將整個表鎖定,所以可以很好的避免困擾我們的死結問題。
當然,鎖定顆粒度大所帶來最大的負面影響就是出現鎖定資源爭用的機率也會最高,致使並大度大
打折扣。


● 頁級鎖定(page-level)
頁級鎖定是MySQL 中比較獨特的一種鎖定層級,在其他資料庫管理軟體中也並不是太常見。頁級鎖
定的特點是鎖定顆粒度介於行級鎖定與表級鎖之間,所以擷取鎖定所需要的資源開銷,以及所能提供的
並發處理能力也同樣是介於上面二者之間。另外,頁級鎖定和行級鎖定一樣,會發生死結。
在資料庫實現資源鎖定的過程中,隨著鎖定資源顆粒度的減小,鎖定相同資料量的資料所需要消耗
的記憶體數量是越來越多的,實現演算法也會越來越複雜。不過,隨著鎖定資源顆粒度的減小,應用程式的
訪問請求遇到鎖等待的可能性也會隨之降低,系統整體並發度也隨之提升。
在MySQL 資料庫中,使用表級鎖定的主要是MyISAM,Memory,CSV 等一些非事務性儲存引擎,而使用
行級鎖定的主要是Innodb 儲存引擎和NDB Cluster 儲存引擎,頁級鎖定主要是BerkeleyDB 儲存引擎的鎖
定方式。

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.