溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)庫(kù)ACID原則和事務(wù)隔離級(jí)別

發(fā)布時(shí)間:2020-06-30 20:31:44 來(lái)源:網(wǎng)絡(luò) 閱讀:1569 作者:arthur376 欄目:數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)ACID原則
A:原子性,Atomicity
C:一致性,Consistency
I:隔離性,Isolation
D:持久性,Durability
mysql中的innodb引擎,原子性,一致性,隔離性通過(guò)redo和undo實(shí)現(xiàn),redo就是ib_logfile物理文件,而undo默認(rèn)在共享表空間ibdata里面,通過(guò)設(shè)置參數(shù)可以獨(dú)立出來(lái).

事務(wù)隔離級(jí)別
Read Uncommitted(讀未提交):    事務(wù)在執(zhí)行過(guò)程中可以看到其他事務(wù)沒(méi)有提交的插入和更改的數(shù)據(jù),缺點(diǎn)是允許臟讀,不允許同時(shí)進(jìn)行寫操作,但允許其他事務(wù)讀沒(méi)有提交的數(shù)據(jù),對(duì)查詢的準(zhǔn)確性有很大的問(wèn)題。
Read Committed(讀已提交):    事務(wù)在執(zhí)行過(guò)程中可以看到其他事務(wù)已經(jīng)提交的新插入的記錄,而且能看到其他事務(wù)已經(jīng)提交的對(duì)已有記錄的更新,即有可能存在重復(fù)查詢同一記錄會(huì)有不同結(jié)果的情況,但是確實(shí)是已經(jīng)提交過(guò)的數(shù)據(jù),缺點(diǎn)是允許幻讀(之前不存在,但后來(lái)已提交的數(shù)據(jù)),不允許同時(shí)進(jìn)行寫操作,只允許讀已提交的數(shù)據(jù),但允許不可重復(fù)讀(兩次讀的數(shù)據(jù)允許不一致),oracle和sqlserver的默認(rèn)隔離級(jí)別.
Repeatable Read(可重復(fù)讀):    事務(wù)在執(zhí)行過(guò)程中可以看到其他事務(wù)已經(jīng)提交的新插入的記錄,但是不能看到其他其他事務(wù)對(duì)已有記錄的更新,即重復(fù)查詢同一記錄是保持一致的,禁止不可重復(fù)讀取和臟讀,但在極端情況下還會(huì)有幻讀,總體符合ACID原則,mysql默認(rèn)的隔離級(jí)別.
Serializable(串行化):    事務(wù)串行化執(zhí)行,事務(wù)只能一個(gè)接著一個(gè)地執(zhí)行,并且在執(zhí)行過(guò)程中完全看不到其他事務(wù)對(duì)數(shù)據(jù)庫(kù)所做的更新,缺點(diǎn)是并發(fā)能力差,最嚴(yán)格的事務(wù)隔離,完全符合ACID原則,但是對(duì)性能影響比較大。
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI