MySQL數(shù)據(jù)庫有哪幾種鎖定機(jī)制

下面一起來了解下MySQL數(shù)據(jù)庫有哪幾種鎖定機(jī)制,相信大家看完肯定會(huì)受益匪淺,文字在精不在多,希望MySQL數(shù)據(jù)庫有哪幾種鎖定機(jī)制這篇短內(nèi)容是你想要的。                                                             

10年積累的網(wǎng)站建設(shè)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有房縣免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

MySQL鎖定機(jī)制簡(jiǎn)介

  1. 數(shù)據(jù)庫鎖定機(jī)制簡(jiǎn)單來說就是數(shù)據(jù)庫為了保證數(shù)據(jù)的一致性而使各種共享資源在被并發(fā)訪問變得有序所設(shè)計(jì)的一種規(guī)則。

  2. 對(duì)于任何一種數(shù)據(jù)庫來說都需要有相應(yīng)的鎖定機(jī)制,所以MySQL自然也不例外。

  3. MySQL數(shù)據(jù)庫由于其自身架構(gòu)的特點(diǎn),存在多種數(shù)據(jù)存儲(chǔ)引擎,每種存儲(chǔ)引擎所針對(duì)的應(yīng)用場(chǎng)景特點(diǎn)都不太一樣,為了滿足各自特定應(yīng)用場(chǎng)景的需求,每種存儲(chǔ)引擎的鎖定機(jī)制都是為各自所面對(duì)的特定場(chǎng)景而優(yōu)化設(shè)計(jì),所以,各種存儲(chǔ)引擎的鎖定機(jī)制也有較大區(qū)別。

  4. 總的來說,MySQL各存儲(chǔ)引擎使用了三種類型(級(jí)別)的鎖定機(jī)制:行級(jí)鎖定,頁級(jí)鎖定和表級(jí)鎖定。

行級(jí)鎖定(row-level)

  1. 行級(jí)鎖,一般是指排它鎖,即被鎖定行不可進(jìn)行修改、刪除,只可以被其他會(huì)話select。

  2. 排他鎖又稱為寫鎖,簡(jiǎn)稱X鎖,顧名思義,排他鎖就是不能與其他鎖并存,如一個(gè)事務(wù)獲取了一個(gè)數(shù)據(jù)行的排他鎖,其他事務(wù)就不能再獲取該行的其他鎖。

  3. 行級(jí)鎖定最大的特點(diǎn)就是鎖定對(duì)象的顆粒度很小,也是目前各大數(shù)據(jù)庫管理軟件所實(shí)現(xiàn)的鎖定顆粒度最小的。

  4. 由于鎖定顆粒度很小,所以發(fā)生鎖定資源競(jìng)爭(zhēng)的概率也小,能夠給予應(yīng)用程序盡可能大的并發(fā)處理能力提高一些需要高并發(fā)應(yīng)用系統(tǒng)的整體性能。

  5. 雖然在并發(fā)處理能力上面有較大的優(yōu)勢(shì),但是行級(jí)鎖定也因此帶來了不少弊端。

  6. 由于鎖定資源的顆粒度很小,所以每次獲取鎖和釋放鎖需要做的事情也很多,帶來的消耗自然也就更大了。

  7. 此外,行級(jí)鎖定也最容易發(fā)生死鎖。

表級(jí)鎖定(table-level)

  1. 表級(jí)鎖,直接鎖定整張表,在你鎖定期間,其他進(jìn)程無法對(duì)該表進(jìn)行寫操作。如果你是寫鎖,則其他進(jìn)程則讀也不允許。

  2. 和行級(jí)鎖定相反,表級(jí)別的鎖定是mysql各存儲(chǔ)引擎中最大顆粒度的鎖定機(jī)制。

  3. 該鎖定機(jī)制最大的特點(diǎn)就是實(shí)現(xiàn)邏輯非常簡(jiǎn)單,帶來的系統(tǒng)負(fù)面影響最小。所以獲取鎖和釋放鎖的速度很快。

  4. 由于表級(jí)鎖一次會(huì)將整個(gè)表鎖定,所以可以很好的避免困擾我們的死鎖問題。

  5. 當(dāng)然,鎖定顆粒度大帶來的負(fù)面影響就是出現(xiàn)資源爭(zhēng)用的概率也會(huì)很高,致使并發(fā)度大打折扣。

頁級(jí)鎖定(page-level)

  1. 頁級(jí)鎖定是MySQL中比較獨(dú)特的一種鎖定級(jí)別,在其他數(shù)據(jù)庫管理軟件中也并不是太常見。

  2. 頁級(jí)鎖定的特點(diǎn)是鎖定顆粒度介于行級(jí)鎖定和表級(jí)鎖定之間,所以獲取鎖所需要的資源開銷,以及所能提供的并發(fā)處理能力也同樣介于上面二者之間。

  3. 另外,頁級(jí)鎖定和行級(jí)鎖定一樣,也會(huì)發(fā)生死鎖。

小結(jié)

  1. 在數(shù)據(jù)庫實(shí)現(xiàn)資源鎖定的過程中,隨著鎖定資源顆粒度的減小,鎖定相同數(shù)據(jù)量的數(shù)據(jù)所需要消耗的內(nèi)存數(shù)量是越來越多,實(shí)現(xiàn)算法也會(huì)越來越復(fù)雜。

  2. 隨著鎖定資源顆粒度的減小,應(yīng)用程序的訪問請(qǐng)求遇到鎖等待的可能性也會(huì)隨之降低,系統(tǒng)整體并發(fā)度頁隨之提升。

  3. 在MySQL中,使用表級(jí)鎖定的是MyISAM、MEmory、CSv等一些非事務(wù)型存儲(chǔ)引擎,而使用行級(jí)鎖的主要是InnoDB存儲(chǔ)引擎和NDB Cluster存儲(chǔ)引擎,頁級(jí)鎖定主要是BerkeleyDB存儲(chǔ)引擎的鎖定方式。

看完MySQL數(shù)據(jù)庫有哪幾種鎖定機(jī)制這篇文章后,很多讀者朋友肯定會(huì)想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。

名稱欄目:MySQL數(shù)據(jù)庫有哪幾種鎖定機(jī)制
文章起源:http://bm7419.com/article20/psdojo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航、定制網(wǎng)站定制開發(fā)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)