久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

MVVC

 ansatsing 2019-01-20

我們知道,,mysql的innodb采用的是行鎖,而且采用了多版本并發(fā)控制來提高讀操作的性能,。

什么是多版本并發(fā)控制呢 ,?其實(shí)就是在每一行記錄的后面增加兩個(gè)隱藏列,記錄創(chuàng)建版本號(hào)和刪除版本號(hào),,

而每一個(gè)事務(wù)在啟動(dòng)的時(shí)候,,都有一個(gè)唯一的遞增的版本號(hào),。 

1,、在插入操作時(shí) : 記錄的創(chuàng)建版本號(hào)就是事務(wù)版本號(hào)。 

比如我插入一條記錄, 事務(wù)id 假設(shè)是1 ,,那么記錄如下:也就是說,,創(chuàng)建版本號(hào)就是事務(wù)版本號(hào)。

id  name  create version  delete version  
1test  1 

2,、在更新操作的時(shí)候,,采用的是先標(biāo)記舊的那行記錄為已刪除,并且刪除版本號(hào)是事務(wù)版本號(hào),,然后插入一行新的記錄的方式,。 

比如,針對(duì)上面那行記錄,,事務(wù)Id為2 要把name字段更新

update table set name= 'new_value' where id=1;

id    name  create version  delete version  
1  test  12        
1  new_value  2 

 

3,、刪除操作的時(shí)候,,就把事務(wù)版本號(hào)作為刪除版本號(hào)。比如

delete from table where id=1; 

 

id  name  create version  delete version  
1new_value23  

 

 

4,、查詢操作: 

從上面的描述可以看到,,在查詢時(shí)要符合以下兩個(gè)條件的記錄才能被事務(wù)查詢出來: 

1) 刪除版本號(hào) 大于 當(dāng)前事務(wù)版本號(hào),就是說刪除操作是在當(dāng)前事務(wù)啟動(dòng)之后做的,。 

2) 創(chuàng)建版本號(hào) 小于或者等于 當(dāng)前事務(wù)版本號(hào) ,,就是說記錄創(chuàng)建是在事務(wù)中(等于的情況)或者事務(wù)啟動(dòng)之前。

這樣就保證了各個(gè)事務(wù)互不影響,。從這里也可以體會(huì)到一種提高系統(tǒng)性能的思路,,就是: 

通過版本號(hào)來減少鎖的爭用。

另外,,只有read-committed和 repeatable-read 兩種事務(wù)隔離級(jí)別才能使用mVcc

read-uncommited由于是讀到未提交的,,所以不存在版本的問題

而serializable 則會(huì)對(duì)所有讀取的行加鎖。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多