内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

mysql數(shù)據(jù)庫中的鎖介紹-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,成都移動服務(wù)器托管,成都移動服務(wù)器托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。

這篇文章將為大家詳細講解有關(guān)mysql數(shù)據(jù)庫中的鎖介紹,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

mysql鎖機制是數(shù)據(jù)庫為了保證數(shù)據(jù)的一致性,而使各種共享資源在被并發(fā)訪問變得有序所設(shè)計的一種規(guī)則。mysql各存儲引擎使用了三種類型的鎖定機制,分別是:表級鎖定、行級鎖定、頁級鎖定。

鎖詳解

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

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

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

詳細介紹:

1、頁級鎖定(page-level)

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

頁級鎖定的特點是鎖定顆粒度介于行級鎖定與表級鎖之間,所以獲取鎖定所需要的資源開銷,以及所能提供的并發(fā)處理能力也同樣是介于上面二者之間。另外,頁級鎖定和行級鎖定一樣,會發(fā)生死鎖。

在數(shù)據(jù)庫實現(xiàn)資源鎖定的過程中,隨著鎖定資源顆粒度的減小,鎖定相同數(shù)據(jù)量的數(shù)據(jù)所需要消耗的內(nèi)存數(shù)量是越來越多的,實現(xiàn)算法也會越來越復(fù)雜。不過,隨著鎖定資源顆粒度的減小,應(yīng)用程序的訪問請求遇到鎖等待的可能性也會隨之降低,系統(tǒng)整體并發(fā)度也隨之提升。

使用頁級鎖定的主要是BerkeleyDB存儲引擎。

2、表級鎖定(table-level)

表級別的鎖定是MySQL各存儲引擎中大顆粒度的鎖定機制。該鎖定機制大的特點是實現(xiàn)邏輯非常簡單,帶來的系統(tǒng)負面影響最小。所以獲取鎖和釋放鎖的速度很快。由于表級鎖一次會將整個表鎖定,所以可以很好的避免困擾我們的死鎖問題。

當(dāng)然,鎖定顆粒度大所帶來大的負面影響就是出現(xiàn)鎖定資源爭用的概率也會最高,致使并大度大打折扣。

使用表級鎖定的主要是MyISAM,MEMORY,CSV等一些非事務(wù)性存儲引擎。

3、行級鎖定(row-level)

行級鎖定大的特點就是鎖定對象的顆粒度很小,也是目前各大數(shù)據(jù)庫管理軟件所實現(xiàn)的鎖定顆粒度最小的。由于鎖定顆粒度很小,所以發(fā)生鎖定資源爭用的概率也最小,能夠給予應(yīng)用程序盡可能大的并發(fā)處理能力而提高一些需要高并發(fā)應(yīng)用系統(tǒng)的整體性能。

雖然能夠在并發(fā)處理能力上面有較大的優(yōu)勢,但是行級鎖定也因此帶來了不少弊端。由于鎖定資源的顆粒度很小,所以每次獲取鎖和釋放鎖需要做的事情也更多,帶來的消耗自然也就更大了。此外,行級鎖定也最容易發(fā)生死鎖。

使用行級鎖定的主要是InnoDB存儲引擎。

死鎖
MyISAM表鎖是deadlock free的,這是因為MyISAM總是一次獲得所需的全部鎖,要么全部滿足,要么等待,因此不會出現(xiàn)死鎖。但在InnoDB中,除單個SQL組成的事務(wù)外,鎖是逐步獲得的,當(dāng)兩個事務(wù)都需要獲得對方持有的排他鎖才能繼續(xù)完成事務(wù),這種循環(huán)鎖等待就是典型的死鎖。
在InnoDB的事務(wù)管理和鎖定機制中,有專門檢測死鎖的機制,會在系統(tǒng)中產(chǎn)生死鎖之后的很短時間內(nèi)就檢測到該死鎖的存在。當(dāng)InnoDB檢測到系統(tǒng)中產(chǎn)生了死鎖之后,InnoDB會通過相應(yīng)的判斷來選這產(chǎn)生死鎖的兩個事務(wù)中較小的事務(wù)來回滾,而讓另外一個較大的事務(wù)成功完成。

總結(jié):

MySQL這3種鎖的特性可大致歸納如下:

表級鎖:開銷小,加鎖快;不會出現(xiàn)死鎖;鎖定粒度大,發(fā)生鎖沖突的概率最高,并發(fā)度最低;

行級鎖:開銷大,加鎖慢;會出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也最高;

頁面鎖:開銷和加鎖時間界于表鎖和行鎖之間;會出現(xiàn)死鎖;鎖定粒度界于表鎖和行鎖之間,并發(fā)度一般。

適用:從鎖的角度來說,表級鎖更適合于以查詢?yōu)橹?,只有少量按索引條件更新數(shù)據(jù)的應(yīng)用,如Web應(yīng)用;而行級鎖則更適合于有大量按索引條件并發(fā)更新少量不同數(shù)據(jù),同時又有并發(fā)查詢的應(yīng)用,如一些在線事務(wù)處理(OLTP)系統(tǒng)。

關(guān)于mysql數(shù)據(jù)庫中的鎖介紹就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)站欄目:mysql數(shù)據(jù)庫中的鎖介紹-創(chuàng)新互聯(lián)
本文URL:http://www.rwnh.cn/article2/gegoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器網(wǎng)站設(shè)計公司、標(biāo)簽優(yōu)化網(wǎng)站建設(shè)、商城網(wǎng)站面包屑導(dǎo)航

廣告

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

網(wǎng)站建設(shè)網(wǎng)站維護公司
鲁山县| 栾川县| 鸡泽县| 安庆市| 绥化市| 名山县| 荆门市| 武汉市| 许昌市| 土默特右旗| 上蔡县| 五常市| 贺州市| 濮阳县| 长宁区| 黎平县| 乳山市| 临沭县| 辽宁省| 旅游| 奇台县| 旬阳县| 渭南市| 璧山县| 大冶市| 兴仁县| 朝阳区| 泗阳县| 西安市| 江川县| 潼南县| 正宁县| 怀集县| 马龙县| 瓦房店市| 甘谷县| 墨脱县| 工布江达县| 石林| 乐陵市| 宜阳县|