MySQL innodb引擎鎖問題總結及分析
1.1????? 基本名詞解釋
鎖粒度
總的來說,Mysql各存儲引擎使用了三種類型(級別)的鎖定機制:行級鎖定,頁級鎖定和表級鎖定。下面我們先分析一下Mysql這三種鎖定的特點和各自的優(yōu)劣所在。
1、行級鎖
鎖定粒度最小
優(yōu)勢:高并發(fā)性能高
劣勢:獲取和釋放鎖的次數(shù)更多,消耗更大,且更容易發(fā)生死鎖。
2、表級鎖
最大粒度鎖
優(yōu)勢:不會產生死鎖,所獲取和釋放很快,消耗小
劣勢:并發(fā)性能差
3、頁級鎖
頁級鎖定是MySQL中比較獨特的一種鎖定級別,在其他數(shù)據(jù)庫管理軟件中也并不是太常見。頁級鎖定的特點是鎖定顆粒度介于行級鎖定與表級鎖之間,所以獲取鎖定所需要的資源開銷,以及所能提供的并發(fā)處理能力也同樣是介于上面二者之間。另外,頁級鎖定和行級鎖定一樣,會發(fā)生死鎖。
4、間隙鎖 記錄與記錄之間的間隙鎖,保證不出現(xiàn)幻讀
鎖類型
1.表級鎖分為讀、寫鎖
2.innodb存儲引擎的鎖可分為:共享鎖(S),排他鎖(X),意向共享鎖(IS)和意向排他鎖(IX)
事物:
數(shù)據(jù)庫事務(Database Transaction) ,是指作為單個邏輯工作單元執(zhí)行的一系列操作,要么完全地執(zhí)行,要么完全地不執(zhí)行。 事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向數(shù)據(jù)的資源。通過將一組相關操作組合為一個要么全部成功要么全部失敗的單元,可以簡化錯誤恢復并使應用程序更加可靠。一個邏輯工作單元要成為事務,必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性。事務是數(shù)據(jù)庫運行中的一個邏輯工作單位,由DBMS中的事務管理子系統(tǒng)負責事務的處理。
隔離級別:
1)未提交讀(Read uncommitted);2)已提交讀(Read committed(RC));3)可重復讀(Repeatable read(RR));4)可串行化(Serializable)
兩階段鎖:
鎖操作分為兩個階段:加鎖和解鎖。兩階段鎖就是將加鎖和解鎖分為兩個完全不相交的階段。加鎖階段:只加鎖、不釋放鎖;解鎖階段:只放鎖,不加鎖。
數(shù)據(jù)庫 MySQL
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。