日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL高级 - 锁 - InnoDB行锁 - 介绍及背景知识

發(fā)布時(shí)間:2024/4/14 数据库 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL高级 - 锁 - InnoDB行锁 - 介绍及背景知识 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

行鎖介紹

?

行鎖特點(diǎn) :偏向InnoDB 存儲(chǔ)引擎,開銷大,加鎖慢;會(huì)出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也最高。

InnoDB 與 MyISAM 的最大不同有兩點(diǎn):一是支持事務(wù);二是 采用了行級(jí)鎖。

背景知識(shí)

事務(wù)及其ACID屬性

事務(wù)是由一組SQL語句組成的邏輯處理單元。

事務(wù)具有以下4個(gè)特性,簡(jiǎn)稱為事務(wù)ACID屬性。

ACID屬性含義
原子性(Atomicity)事務(wù)是一個(gè)原子操作單元,其對(duì)數(shù)據(jù)的修改,要么全部成功,要么全部失敗。
一致性(Consistent)在事務(wù)開始和完成時(shí),數(shù)據(jù)都必須保持一致狀態(tài)。
隔離性(Isolation)數(shù)據(jù)庫(kù)系統(tǒng)提供一定的隔離機(jī)制,保證事務(wù)在不受外部并發(fā)操作影響的 “獨(dú)立” 環(huán)境下運(yùn)行。
持久性(Durable)事務(wù)完成之后,對(duì)于數(shù)據(jù)的修改是永久的。

并發(fā)事務(wù)處理帶來的問題

問題含義
丟失更新(Lost Update)當(dāng)兩個(gè)或多個(gè)事務(wù)選擇同一行,最初的事務(wù)修改的值,會(huì)被后面的事務(wù)修改的值覆蓋。
臟讀(Dirty Reads)當(dāng)一個(gè)事務(wù)正在訪問數(shù)據(jù),并且對(duì)數(shù)據(jù)進(jìn)行了修改,而這種修改還沒有提交到數(shù)據(jù)庫(kù)中,這時(shí),另外一個(gè)事務(wù)也訪問這個(gè)數(shù)據(jù),然后使用了這個(gè)數(shù)據(jù)。
不可重復(fù)讀(Non-Repeatable Reads)一個(gè)事務(wù)在讀取某些數(shù)據(jù)后的某個(gè)時(shí)間,再次讀取以前讀過的數(shù)據(jù),卻發(fā)現(xiàn)和以前讀出的數(shù)據(jù)不一致。
幻讀(Phantom Reads)一個(gè)事務(wù)按照相同的查詢條件重新讀取以前查詢過的數(shù)據(jù),卻發(fā)現(xiàn)其他事務(wù)插入了滿足其查詢條件的新數(shù)據(jù)。

事務(wù)隔離級(jí)別

為了解決上述提到的事務(wù)并發(fā)問題,數(shù)據(jù)庫(kù)提供一定的事務(wù)隔離機(jī)制來解決這個(gè)問題。數(shù)據(jù)庫(kù)的事務(wù)隔離越嚴(yán)格,并發(fā)副作用越小,但付出的代價(jià)也就越大,因?yàn)槭聞?wù)隔離實(shí)質(zhì)上就是使用事務(wù)在一定程度上“串行化” 進(jìn)行,這顯然與“并發(fā)” 是矛盾的。

數(shù)據(jù)庫(kù)的隔離級(jí)別有4個(gè),由低到高依次為Read uncommitted、Read committed、Repeatable read、Serializable,這四個(gè)級(jí)別可以逐個(gè)解決臟寫、臟讀、不可重復(fù)讀、幻讀這幾類問題。

隔離級(jí)別丟失更新臟讀不可重復(fù)讀幻讀
Read uncommitted×
Read committed××
Repeatable read(默認(rèn))×××
Serializable××××

備注 : √ 代表可能出現(xiàn) , × 代表不會(huì)出現(xiàn) 。

Mysql 的數(shù)據(jù)庫(kù)的默認(rèn)隔離級(jí)別為 Repeatable read , 查看方式:

show variables like 'tx_isolation';

超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的MySQL高级 - 锁 - InnoDB行锁 - 介绍及背景知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。