最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL可重復(fù)讀隔離級(jí)別下開啟事務(wù)的問題解決

 更新時(shí)間:2024年07月21日 15:34:07   作者:雨下的竹子  
本文主要介紹了MySQL可重復(fù)讀隔離級(jí)別下開啟事務(wù)的問題解決,詳解在Repeatable?Read隔離級(jí)別下,mysql的快照生成時(shí)機(jī)的問題,感興趣的可以了解一下

1.前言

在日常我們操作mysql時(shí),mysql默認(rèn)是自動(dòng)提交的。當(dāng)我們需要開啟一個(gè)事務(wù)時(shí),可以使用start transactionbegin命令,再使用commitrollback提交或回滾事務(wù)。

但事務(wù)的使用也有一些注意事項(xiàng),不注意的話,可能會(huì)帶來意料之外的結(jié)果。

今天,我要分享的就是在Repeatable Read(簡(jiǎn)稱rr)隔離級(jí)別下,mysql的快照生成時(shí)機(jī)的問題。

2.問題引出

我們都知道,rr級(jí)別下,是根據(jù)快照來讀取數(shù)據(jù)的,所以他能保證同一事務(wù)內(nèi)的兩次讀取是一致的,不會(huì)因?yàn)槠渌聞?wù)提交的修改而導(dǎo)致前后讀取結(jié)果不一樣。

現(xiàn)在db3庫(kù)下有個(gè)test表,且mysql隔離級(jí)別為rr(默認(rèn)rr)。

在這里插入圖片描述

開啟兩個(gè)會(huì)話,一個(gè)會(huì)話開啟一個(gè)事務(wù),另一個(gè)會(huì)話開啟一個(gè)事務(wù)并修改一行數(shù)據(jù)

在這里插入圖片描述

在這里插入圖片描述

按正常理解來說,此時(shí)在第一個(gè)會(huì)話里查詢數(shù)據(jù),查詢到的還是原來的’zhuzi1’而不是’zhuzin’

但實(shí)際上,我們卻發(fā)現(xiàn),第二個(gè)事務(wù)的修改影響到了第一個(gè)事務(wù)的結(jié)果。

在這里插入圖片描述

3.原因

上面問題出現(xiàn)的原因,就是因?yàn)槲覀冊(cè)陂_啟一個(gè)事務(wù)時(shí),并沒有立即生成數(shù)據(jù)快照,而是在執(zhí)行一次快照讀(所謂快照讀,就是我們平常使用的普通查詢;當(dāng)前讀則是使用例如for update加鎖的查詢)之后才生成的。所以,當(dāng)我們?cè)诘谝粋€(gè)事務(wù)中第一次執(zhí)行快照讀時(shí),第二個(gè)事務(wù)已經(jīng)提交修改了,當(dāng)然是可以看到這個(gè)修改的。

mysql想要在開啟事務(wù)時(shí)就生成快照,確保數(shù)據(jù)不再變化,可以使用如下方式開啟事務(wù)

start transaction with consistent snapshot;

這樣,mysql就會(huì)在開啟事務(wù)時(shí)立即生成快照了。

官網(wǎng)對(duì)于with consistent snapshot的介紹如下:

在這里插入圖片描述

翻譯的大致意思就是WITH CONSISTENT SNAPSHOT修飾符為innodb啟動(dòng)一致讀取。且只適用于innodb引擎。其效果與從任何InnoDB表中發(fā)出START TRANSACTION后接SELECT相同。WITH CONSISTENT SNAPSHOT修飾符不會(huì)更改當(dāng)前事務(wù)隔離級(jí)別,因此只有當(dāng)前隔離級(jí)別允許一致讀取時(shí),它才能提供一致的快照。唯一允許一致讀取的隔離級(jí)別是可重復(fù)讀取。對(duì)于所有其他隔離級(jí)別,WITH CONSISTENT SNAPSHOT子句將被忽略。忽略WITH CONSISTENT SNAPSHOT子句時(shí)會(huì)生成警告。

官網(wǎng)對(duì)rr的介紹如下:

在這里插入圖片描述

由此可知,如果你開啟了一個(gè)事務(wù),卻不進(jìn)行一次讀取操作,那么快照是不會(huì)建立的

到此這篇關(guān)于MySQL可重復(fù)讀隔離級(jí)別下開啟事務(wù)的一個(gè)注意事項(xiàng)的文章就介紹到這了,更多相關(guān)MySQL可重復(fù)讀隔離開啟事務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • mysql8.0.11 winx64安裝配置方法圖文教程(win10)

    mysql8.0.11 winx64安裝配置方法圖文教程(win10)

    這篇文章主要為大家詳細(xì)介紹了win10下mysql8.0.11 winx64安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • MySQL運(yùn)行報(bào)錯(cuò):“Expression?#1?of?SELECT?list?is?not?in?GROUP?BY?clause?and?contains?nonaggre”解決方法

    MySQL運(yùn)行報(bào)錯(cuò):“Expression?#1?of?SELECT?list?is?not?in?GR

    這篇文章主要給大家介紹了關(guān)于MySQL運(yùn)行報(bào)錯(cuò):“Expression?#1?of?SELECT?list?is?not?in?GROUP?BY?clause?and?contains?nonaggre”的解決方法,文中將解決方法介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • SQL 聚合、分組和排序

    SQL 聚合、分組和排序

    這篇文章主要介紹了SQL 聚合、分組和排序,文章圍繞SQL 聚合、分組、排序的相關(guān)資料展開具體內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • MYSQL中Truncate的用法詳解

    MYSQL中Truncate的用法詳解

    這篇文章主要介紹了MYSQL中Truncate的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • MySQL8.0 MGR的維護(hù)管理

    MySQL8.0 MGR的維護(hù)管理

    數(shù)據(jù)庫(kù)已成為企業(yè)和管理員們最為關(guān)注的核心組件之一,本文主要介紹了MySQL8.0 MGR的維護(hù)管理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • MySQL 選擇合適的存儲(chǔ)引擎

    MySQL 選擇合適的存儲(chǔ)引擎

    這篇文章主要介紹了MySQL如何選擇合適的存儲(chǔ)引擎,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-09-09
  • MySql比較運(yùn)算符正則式匹配REGEXP的詳細(xì)使用詳解

    MySql比較運(yùn)算符正則式匹配REGEXP的詳細(xì)使用詳解

    這篇文章主要介紹了MySql比較運(yùn)算符正則式匹配REGEXP的詳細(xì)使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 對(duì)MySQL幾種聯(lián)合查詢的通俗解釋

    對(duì)MySQL幾種聯(lián)合查詢的通俗解釋

    這篇文章主要介紹了LEFT JOIN 關(guān)鍵字會(huì)從左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。下面給個(gè)通俗的解釋吧
    2015-01-01
  • Mysql添加、刪除、主鍵(外鍵)方法詳細(xì)講解

    Mysql添加、刪除、主鍵(外鍵)方法詳細(xì)講解

    MySQL是一種廣泛使用的開源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在數(shù)據(jù)庫(kù)設(shè)計(jì)中主鍵和外鍵是兩個(gè)重要的概念,下面這篇文章主要給大家介紹了關(guān)于Mysql添加、刪除、主鍵(外鍵)方法的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • xampp修改mysql默認(rèn)密碼的方法

    xampp修改mysql默認(rèn)密碼的方法

    在這里介紹xampp修改mysql默認(rèn)密碼的大概過程是先利用xampp的phpmyadmin進(jìn)入修改mysql密碼,修改之后我們?cè)傩薷膞ampp中phpmyadmin的密碼,這樣就完整的修改mysql默認(rèn)密碼了,感興趣的朋友一起通過本文學(xué)習(xí)吧
    2016-10-10

最新評(píng)論

黄大仙区| 额尔古纳市| 如皋市| 江陵县| 普洱| 利津县| 定西市| 泰和县| 宁明县| 石柱| 长海县| 宿松县| 南康市| 郸城县| 嘉鱼县| 四会市| 富源县| 教育| 天镇县| 大安市| 河间市| 科技| 贺兰县| 台北市| 普兰县| 澄江县| 安多县| 凤山县| 五莲县| 合肥市| 景宁| 青海省| 都江堰市| 康乐县| 商城县| 鹿邑县| 廊坊市| 醴陵市| 辽阳县| 青神县| 海阳市|