亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mysql多版本并發(fā)控制MVCC的實(shí)現(xiàn)

 更新時(shí)間:2019年10月09日 12:02:24   作者:fandsimple  
這篇文章主要介紹了mysql多版本并發(fā)控制MVCC的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

事務(wù)隔離級(jí)別設(shè)置

set global transaction isolation level read committed; //全局的
set session transaction isolation level read committed; //當(dāng)前會(huì)話

修改事務(wù)提交方式(是否自動(dòng)提交,mysql默認(rèn)自動(dòng)提交)

SET AUTOCOMMIT = 1; //自動(dòng)提交,為0手動(dòng)提交

不同數(shù)據(jù)庫(kù)引擎MVCC模式各不相同,典型有樂(lè)觀和悲觀并發(fā)控制。

innodb

說(shuō)明:

InnoDB的MVCC,是通過(guò)在每行記錄后面保存兩個(gè)隱藏的列來(lái)實(shí)現(xiàn)的。這兩個(gè)列,一個(gè)保存了行的創(chuàng)建時(shí)間,一個(gè)保存行的過(guò)期時(shí)間(或刪除時(shí)間)。當(dāng)然存儲(chǔ)的并不是實(shí)際的時(shí)間值,而是系統(tǒng)版本號(hào)(system version number).每開(kāi)始個(gè)新的事務(wù),系統(tǒng)版本號(hào)都會(huì)自動(dòng)遞增。事務(wù)開(kāi)始時(shí)刻的系統(tǒng)版本號(hào)會(huì)作為事務(wù)的版本號(hào),用來(lái)和查詢到的

SELECT

InnoDB會(huì)根據(jù)以下兩個(gè)條件檢查每行記錄:

a. InnoDB只查找版本早于當(dāng)前事務(wù)版本的數(shù)據(jù)行(也就是,行的系統(tǒng)版本號(hào)小于或等于事務(wù)的系統(tǒng)版本號(hào)),這樣可以確保事務(wù)讀取的行,要么是在事務(wù)開(kāi)始前已經(jīng)存在的,要么是事務(wù)自身插人或者修改過(guò)的。

b.行的刪除版本要么未定義,要么大于當(dāng)前事務(wù)版本號(hào)。這可以確保事務(wù)讀取到的行,在事務(wù)開(kāi)始之前未被刪除。

只有符合上述兩個(gè)條件的記錄,才能返回作為查詢結(jié)果。

INSERT

InnoDB為新插人的每行 保存當(dāng)前系統(tǒng)版本號(hào)作為行版本號(hào)。

DELETE

InnoDB為刪除的每行保存當(dāng)前系統(tǒng)版本號(hào)作為行刪除標(biāo)識(shí)。

UPDATE

InnoDB為插人行新記錄,保存當(dāng)前系統(tǒng)版本號(hào)作為行版本號(hào),同時(shí)保存當(dāng)前系統(tǒng)版本號(hào)到原來(lái)的行作為行刪除標(biāo)識(shí)。

注意:

MVCC只在REPEATABLE READ 和READ COMMITED 兩個(gè)隔離級(jí)別下工作。其他兩個(gè)隔離級(jí)別都和MVCC不兼容法,因?yàn)镽EAD UNCOMITTED總是讀取最新的數(shù)據(jù)行,而不是符合當(dāng)前事務(wù)版本的數(shù)據(jù)行。而SERIALIZABLE則會(huì)對(duì)所有讀取的行都加鎖。

查看當(dāng)表的狀態(tài)

show table status like 'task'\G;

臟讀、不可重復(fù)讀、幻讀

臟讀:當(dāng)前事務(wù)讀到了另一個(gè)事務(wù)未提交的狀態(tài),事務(wù)沒(méi)有實(shí)現(xiàn)隔離。

不可重復(fù)讀:實(shí)現(xiàn)了事務(wù)的隔離性,但兩次讀取同一條數(shù)據(jù)的時(shí)候發(fā)現(xiàn)數(shù)據(jù)不一致了。

幻讀:兩次查詢同一批數(shù)據(jù),發(fā)現(xiàn)有新數(shù)據(jù)被插入,主要是因?yàn)橹型居衅渌聞?wù)對(duì)數(shù)據(jù)集進(jìn)行了插入操作。(加了間隙鎖解決該問(wèn)題)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL更改數(shù)據(jù)字段的前幾位數(shù)字的方法示例

    MySQL更改數(shù)據(jù)字段的前幾位數(shù)字的方法示例

    本文主要介紹了MySQL更改數(shù)據(jù)字段的前幾位數(shù)字的方法示例,包括使用SUBSTRING函數(shù)、REPLACE函數(shù)、LEFT函數(shù),還是正則表達(dá)式或者CASE語(yǔ)句,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • Windows Server2019安裝MySQL5.7.25的方法

    Windows Server2019安裝MySQL5.7.25的方法

    這篇文章主要介紹了Windows Server2019安裝MySQL5.7.25,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • MySQL表級(jí)鎖使用說(shuō)明

    MySQL表級(jí)鎖使用說(shuō)明

    這篇文章主要為大家介紹了MySQL表級(jí)鎖使用說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Mysql關(guān)于進(jìn)程中的死鎖和解除鎖問(wèn)題

    Mysql關(guān)于進(jìn)程中的死鎖和解除鎖問(wèn)題

    Mysql 經(jīng)常會(huì)遇到語(yǔ)句或者存儲(chǔ)過(guò)程長(zhǎng)時(shí)間沒(méi)有反應(yīng),大概率就是掛掉了,或者死鎖了,這篇文章主要介紹了Mysql關(guān)于進(jìn)程中的死鎖和解除鎖問(wèn)題,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • MySQL常見(jiàn)優(yōu)化方案匯總

    MySQL常見(jiàn)優(yōu)化方案匯總

    mysql數(shù)據(jù)庫(kù)是中小微企業(yè)常用的一種數(shù)據(jù)化管理工具,它具有輕便,簡(jiǎn)潔,免費(fèi)等特點(diǎn)。今天通過(guò)本文給大家介紹MySQL常見(jiàn)優(yōu)化方案匯總,感興趣的朋友一起看看吧
    2022-01-01
  • php開(kāi)啟mysqli擴(kuò)展之后如何連接數(shù)據(jù)庫(kù)

    php開(kāi)啟mysqli擴(kuò)展之后如何連接數(shù)據(jù)庫(kù)

    Mysqli是php5之后才有的功能,沒(méi)有開(kāi)啟擴(kuò)展的朋友可以打開(kāi)您的php.ini的配置文件;相對(duì)于mysql有很多新的特性和優(yōu)勢(shì),需要了解的朋友可以參考下
    2012-12-12
  • mysql免安裝版的實(shí)際配置方法

    mysql免安裝版的實(shí)際配置方法

    本文主要向大家講述的是MySQL 免安裝版的實(shí)際配置方法,以及對(duì)其的相關(guān)的下載網(wǎng)址也有詳細(xì)介紹,望你會(huì)有所收獲。
    2010-08-08
  • mysql 發(fā)生系統(tǒng)錯(cuò)誤1067的解決方法

    mysql 發(fā)生系統(tǒng)錯(cuò)誤1067的解決方法

    今天要把WEB項(xiàng)目打包成EXE,可是在數(shù)據(jù)庫(kù)上卡住了。在啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)的時(shí)候發(fā)生系統(tǒng)錯(cuò)誤 1067。
    2009-09-09
  • 詳解MySQL主鍵唯一鍵重復(fù)插入解決方法

    詳解MySQL主鍵唯一鍵重復(fù)插入解決方法

    我們插入數(shù)據(jù)的時(shí)候,有可能碰到重復(fù)數(shù)據(jù)插入的問(wèn)題,那么MySQL主鍵唯一鍵重復(fù)插入如何解決,本文就詳細(xì)的來(lái)介紹一下,感興趣的可以了解一下
    2021-09-09
  • mysql查詢字段類型為json時(shí)的兩種查詢方式

    mysql查詢字段類型為json時(shí)的兩種查詢方式

    這篇文章主要介紹了mysql查詢字段類型為json時(shí)的兩種查詢方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論