創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
鳳翔ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!今天就跟大家聊聊有關(guān)mysql的鎖級別,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
鎖級別
鎖級別就是我們通常所說的鎖粒度。
鎖的類型分為讀鎖和寫鎖,這個很好區(qū)分。可以這樣認(rèn)為:如果有增刪改,就是寫鎖。如果是查詢,就是讀鎖。鎖的粒度也就是鎖的范圍,分為行鎖和表鎖。鎖的范圍和多個因素有關(guān),包括事務(wù)隔離級別、是否使用索引。
數(shù)據(jù)庫引擎具有多粒度鎖定,允許一個事務(wù)鎖定不同類型的資源。 為了盡量減少鎖定的開銷,數(shù)據(jù)庫引擎自動將資源鎖定在適合任務(wù)的級別。
鎖定在較小的粒度(例如行)可以提高并發(fā)度,但開銷較高,因?yàn)槿绻i定了許多行,則需要持有更多的鎖。 鎖定在較大的粒度(例如表)會降低了并發(fā)度,因?yàn)殒i定整個表限制了其他事務(wù)對表中任意部分的訪問。 但其開銷較低,因?yàn)樾枰S護(hù)的鎖較少。
鎖層次結(jié)構(gòu)
數(shù)據(jù)庫引擎通常必須獲取多粒度級別上的鎖才能完整地保護(hù)資源。這組多粒度級別上的鎖稱為鎖層次結(jié)構(gòu)。例如,為了完整地保護(hù)對索引的讀取,數(shù)據(jù)庫引擎實(shí)例可能必須獲取行上的共享鎖以及頁和表上的意向共享鎖。
MySQL有三種鎖的級別:頁級、表級、行級
MyISAM和MEMORY存儲引擎采用的是表級鎖(table-level locking);
BDB存儲引擎采用的是頁面鎖(page-level locking),但也支持表級鎖;
InnoDB存儲引擎既支持行級鎖(row-level locking),也支持表級鎖,但默認(rèn)情況下是采用行級鎖。
MySQL這種鎖的特性可大致歸納如下:
表級鎖:開銷小,加鎖快;不會出現(xiàn)死鎖;鎖定粒度大,發(fā)生鎖沖突的概率最高,并發(fā)度最低。
行級鎖:開銷大,加鎖慢;會出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也最高。
頁面鎖:開銷和加鎖時(shí)間界于表鎖和行鎖之間;會出現(xiàn)死鎖;鎖定粒度界于表鎖和行鎖之間,并發(fā)度一般。
看完上述內(nèi)容,你們對mysql中的鎖級別有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝大家的支持。