2020-04-14:mysql原子性和持久性怎么保證

      網(wǎng)友投稿 863 2025-03-31

      1、Mysql怎么保證一致性的?

      OK,這個(gè)問(wèn)題分為兩個(gè)層面來(lái)說(shuō)。

      從數(shù)據(jù)庫(kù)層面,數(shù)據(jù)庫(kù)通過(guò)原子性、隔離性、持久性來(lái)保證一致性。也就是說(shuō)ACID四大特性之中,C(一致性)是目的,A(原子性)、I(隔離性)、D(持久性)是手段,是為了保證一致性,數(shù)據(jù)庫(kù)提供的手段。數(shù)據(jù)庫(kù)必須要實(shí)現(xiàn)AID三大特性,才有可能實(shí)現(xiàn)一致性。例如,原子性無(wú)法保證,顯然一致性也無(wú)法保證。

      但是,如果你在事務(wù)里故意寫(xiě)出違反約束的代碼,一致性還是無(wú)法保證的。例如,你在轉(zhuǎn)賬的例子中,你的代碼里故意不給B賬戶加錢(qián),那一致性還是無(wú)法保證。因此,還必須從應(yīng)用層角度考慮。

      從應(yīng)用層面,通過(guò)代碼判斷數(shù)據(jù)庫(kù)數(shù)據(jù)是否有效,然后決定回滾還是提交數(shù)據(jù)!

      2、Mysql怎么保證持久性的?

      OK,是利用Innodb的redo log。

      2020-04-14:mysql原子性和持久性怎么保證

      正如之前說(shuō)的,Mysql是先把磁盤(pán)上的數(shù)據(jù)加載到內(nèi)存中,在內(nèi)存中對(duì)數(shù)據(jù)進(jìn)行修改,再刷回磁盤(pán)上。如果此時(shí)突然宕機(jī),內(nèi)存中的數(shù)據(jù)就會(huì)丟失。

      怎么解決這個(gè)問(wèn)題?

      簡(jiǎn)單啊,事務(wù)提交前直接把數(shù)據(jù)寫(xiě)入磁盤(pán)就行啊。

      這么做有什么問(wèn)題?

      只修改一個(gè)頁(yè)面里的一個(gè)字節(jié),就要將整個(gè)頁(yè)面刷入磁盤(pán),太浪費(fèi)資源了。畢竟一個(gè)頁(yè)面16kb大小,你只改其中一點(diǎn)點(diǎn)東西,就要將16kb的內(nèi)容刷入磁盤(pán),聽(tīng)著也不合理。

      畢竟一個(gè)事務(wù)里的SQL可能牽涉到多個(gè)數(shù)據(jù)頁(yè)的修改,而這些數(shù)據(jù)頁(yè)可能不是相鄰的,也就是屬于隨機(jī)IO。顯然操作隨機(jī)IO,速度會(huì)比較慢。

      于是,決定采用redo log解決上面的問(wèn)題。當(dāng)做數(shù)據(jù)修改的時(shí)候,不僅在內(nèi)存中操作,還會(huì)在redo log中記錄這次操作。當(dāng)事務(wù)提交的時(shí)候,會(huì)將redo log日志進(jìn)行刷盤(pán)(redo log一部分在內(nèi)存中,一部分在磁盤(pán)上)。當(dāng)數(shù)據(jù)庫(kù)宕機(jī)重啟的時(shí)候,會(huì)將redo log中的內(nèi)容恢復(fù)到數(shù)據(jù)庫(kù)中,再根據(jù)undo log和binlog內(nèi)容決定回滾數(shù)據(jù)還是提交數(shù)據(jù)。

      mysql

      MySQL 數(shù)據(jù)庫(kù)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:excel表格求差操作的方法
      下一篇:制作項(xiàng)目甘特圖
      相關(guān)文章
      日韩亚洲国产高清免费视频| 国产亚洲婷婷香蕉久久精品| 精品亚洲永久免费精品| 国产亚洲精品成人a v小说| 国产亚洲福利精品一区二区| www.91亚洲| 亚洲美女高清一区二区三区| 亚洲高清国产拍精品青青草原 | 亚洲欧洲免费无码| 91亚洲一区二区在线观看不卡| 亚洲Av熟妇高潮30p| 水蜜桃亚洲一二三四在线| 亚洲av伊人久久综合密臀性色| 亚洲精品乱码久久久久久按摩| 亚洲精品蜜桃久久久久久| 久久亚洲精品中文字幕三区| 国产日产亚洲系列| 亚洲成A人片在线观看无码不卡 | 亚洲人成无码网站| 亚洲VA中文字幕不卡无码| 无码欧精品亚洲日韩一区| 亚洲福利一区二区| 亚洲人成www在线播放| 亚洲精品V天堂中文字幕| 国产精品亚洲一区二区三区在线观看| 极品色天使在线婷婷天堂亚洲| 亚洲国产成人久久综合一区77| 亚洲国产专区一区| 国产亚洲精品a在线观看| 亚洲AV永久无码精品水牛影视| 亚洲好看的理论片电影| 亚洲区精品久久一区二区三区| 国产亚洲精品成人AA片| 豆国产96在线|亚洲| 国产亚洲精品自在线观看| 亚洲AV无码国产在丝袜线观看| 亚洲美女视频一区二区三区| 2020久久精品亚洲热综合一本 | 久久久久久亚洲精品中文字幕| 亚洲精品午夜视频| 亚洲欧美第一成人网站7777|