亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL事務的基礎學習以及心得分享

2024-07-24 13:15:09
字體:
來源:轉載
供稿:網友

事務是邏輯上的一組操作,組成這組操作的各個單元,要不全都成功要不全都失敗,這個特性就是事務,下面就是關于MySQL事務學習中的心得分享:

事務的特性

1.原子性(Atomicity):原子性是指事務是一個不可分割的工作單位,事務中的操作要么都發生,要么都不發生。 

2.一致性(Consistency):在一個事務中,事務前后數據的完整性必須保持一致,可以想象銀行轉賬、火車購票。

3.隔離性(Isolation):多個事務,事務的隔離性是指多個用戶并發訪問數據庫時, 一個用戶的事務不能被其它用戶的事務所干擾,多個并發事務之間數據要相互隔離。

4.持久性(Durability):持久性是指一個事務一旦被提交,它對數據庫中數據的改變就是永久性的,接下來即使數據庫發生故障也不應該對其有任何影響。

寫這些概念呢,是有點繞!繞就繞吧!反正也不是我規定的,這是官方的,解釋是我編的?。?!

事務的并發訪問問題

如果我們在不考慮隔離性問題時,事務是存在三種并發訪問問題的。

1.臟讀:在一個事務中,當讀取數據時,讀到了另一個事務未提交的數據。  

比如A賬戶給B賬戶轉了1塊錢,但是A沒有提交事務,被B賬戶通過臟讀看到了,這時,B就會以為A已經把錢轉過來了,但是這時,A賬戶回滾事務。其實錢就沒給B轉過去,但是B自己本身以為A已經轉過去了,,,有點繞,估計是我描述到繞!

看代碼:

update account set money=money+1 where name='B';  --此時A去通知Bupdate account set money=money -1 where name='A';

 

2.不可重復讀:在一個事務中,兩次讀取的數據內容不一致,這是因為在查詢時,有時間間隔,數據被另一個事務已經修改提交了,那就會出現問題。

3.幻讀/虛讀:在一個事務中,兩次讀取的數據量不一致。

事務的隔離級別

上面介紹了3種事務并發問題!現在介紹一下數據庫提供的解決方案!

1.read uncommitted : 讀取尚未提交的數據 :這個最低級,但是效率肯定最高,但是哪一個問題都不能解決。

2.read committed:讀取已經提交的數據 :可以解決臟讀  。

3.repeatable read:重讀讀?。嚎梢越鉀Q臟讀 和 不可重復讀 。

4.serializable:串行化:可以解決臟讀不可重復讀和虛讀,效率最差,相當于鎖表,開發中一般不用。 

上面的“2”是oracle數據庫默認設置,“3”是mysql數據庫默認的設置。

下面呢我就重點解釋一下mysql數據庫在上面各種事務隔離級別上的演示:

首先介紹兩個語法:

1.查看mysql數據庫默認的隔離級別:select @@tx_isolation

如圖:

MySQL,事務

2.設置mysql的隔離級別:set session transaction isolation level 事務的隔離級別

如圖:

MySQL,事務

事務的隔離級別演示

注意:如果要自己模擬要開啟兩個mysql客戶端,也就是模擬兩個用戶!

1.read uncommitted

如圖:

MySQL,事務

我通過語法將數據庫的事務隔離級別改為了read uncommitted。

首先我有一張account表。 

如圖:窗口一

MySQL,事務

 窗口二

MySQL,事務

數據庫表原始數據money都是5000,當我啟動事務后,在zhangsan賬戶增加了1000和在李四賬戶減去了1000,但是我的事務還未提交,但是我再次查詢數據庫表時,數據已經發生變化,這就是臟讀和不可重復讀!

幻讀/虛讀我就不掩飾了,同樣存在!

2.read committed

 如圖:

MySQL,事務

我將數據庫事務隔離性改為了read committted。

還是上面那張表:

如圖:窗口一

MySQL,事務

 窗口二

 MySQL,事務

 

數據庫表zhangsan賬戶的money和lisi賬戶的money都發生了變化,我未提交事務,在另一個窗口事務開啟下查詢時,沒有出現臟讀,但是當我提交事務時,在另一個窗口的事務下再次查詢,出現了不可重復讀的情況,這樣可以避免臟讀,但是查詢時已經出現不可重復讀和幻讀/虛讀!

3.repeatable read

如圖:

MySQL,事務

我將數據庫事務隔離性改為了read committted。

還是上面那張表:

如圖:窗口一

MySQL,事務

 窗口二

MySQL,事務

我在兩個窗口都開啟了事務,當窗口一進行數據操作后,并進行事務提交,在窗口二的事務開啟情況下,我去查詢,沒有查詢到剛才窗口一的數據操作記錄,這樣就避免了臟讀和不可重復讀。

 有人說也避免了虛讀/幻讀,其實沒有。

 看圖:

MySQL,事務

我在操作lisi賬戶時,數據只是發生修改的變化,但是當我修改wangwu這個賬戶時,再去查詢出現了wangwu,賬戶的數據,但是其實在我未操作前,wangwu賬戶的數據是查詢不出的。這就是幻讀/虛讀!

如果不理解幻讀/虛讀這塊,可以查一下InnoDB。

4.serializable

我就不演示了,開發不建議用,效率又慢,但是所有的問題都能避免??!

總結一下 

事務隔離級別的性能:

read uncommitted>read committed>repeatable read>serialazable

事務隔離級別的安全性:

read uncommitted<read committed<repeatable read<serialazable

mysql 事務控制:

開啟事務:start transaction;

提交:commit;

回滾:rollback;


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
38少妇精品导航| 91美女福利视频高清| 亚洲国产高潮在线观看| 成人在线播放av| 7777精品久久久久久| 欧美精品免费在线观看| 92国产精品视频| 欧美激情第一页xxx| 欧美视频在线观看 亚洲欧| 91精品综合视频| 日韩免费中文字幕| 欧美精品一区二区三区国产精品| 4k岛国日韩精品**专区| 亚洲精品成人久久| 97精品视频在线| 亚洲欧美变态国产另类| 九九热r在线视频精品| 欧美亚洲视频在线看网址| 国产精品2018| 日韩欧美成人精品| 国产精品久久久一区| 黄色精品一区二区| 欧美日韩中文在线| 精品久久久久久亚洲国产300| 久久久亚洲福利精品午夜| 欧美野外wwwxxx| 一本色道久久88综合亚洲精品ⅰ| 亚洲最大的av网站| 国产精品久久久91| 在线国产精品播放| 91久久精品视频| 欧美日韩国产一区中文午夜| 久久久久久久久久婷婷| 亚洲国产日韩欧美在线图片| 成人两性免费视频| 国产精品久久久久久av下载红粉| 久久中文字幕国产| 中文字幕久久精品| 精品久久久在线观看| 国产精品夜色7777狼人| 欧美性xxxxxx| 国产精品高潮呻吟视频| 欧美成人sm免费视频| 欧美贵妇videos办公室| 精品国产91久久久久久| 欧美日韩亚洲系列| 亚洲天堂网在线观看| 日本精品视频在线播放| 成人免费在线视频网址| 91精品国产777在线观看| 国产精品激情av在线播放| 高跟丝袜一区二区三区| 欧美二区在线播放| 精品国产乱码久久久久久天美| 91成人天堂久久成人| 国产精品色婷婷视频| 欧美激情性做爰免费视频| 中文字幕成人精品久久不卡| 欧美在线精品免播放器视频| 国产精品久久久久久久一区探花| 在线观看国产成人av片| 色先锋资源久久综合5566| 中文字幕亚洲欧美日韩在线不卡| 亚洲精品中文字幕av| 在线精品国产成人综合| 国产日韩精品视频| 91久久精品国产91久久性色| 俺去了亚洲欧美日韩| 国产欧美中文字幕| 亚洲人成在线观看| 国产成人精品免费视频| 亚洲第一中文字幕在线观看| 国产成人精品av在线| 亚洲福利视频二区| 自拍偷拍亚洲区| 亚洲 日韩 国产第一| 久久久久国产一区二区三区| 日韩av影片在线观看| 亚洲精品国产精品国产自| 欧美韩日一区二区| 久久久精品一区二区| 伊人伊人伊人久久| 国产亚洲福利一区| 成人久久一区二区三区| 欧美性xxxx| 亚洲欧美日韩精品久久| 亚洲视频日韩精品| 一区二区三区四区视频| 国产精品久久久久av免费| 亚洲精品久久久久久下一站| 三级精品视频久久久久| 欧美激情性做爰免费视频| 国产一级揄自揄精品视频| 69久久夜色精品国产69乱青草| 一区二区欧美激情| 久久综合久久八八| 日韩精品中文在线观看| 欧美成人午夜免费视在线看片| 国产精品揄拍一区二区| 日本伊人精品一区二区三区介绍| 日韩av片电影专区| 狠狠躁夜夜躁人人躁婷婷91| 国产成人午夜视频网址| 97精品视频在线播放| 国产成人精品电影| 亚洲欧美国产精品va在线观看| 成人欧美一区二区三区黑人| 亚洲激情在线观看| 欧美裸体男粗大视频在线观看| 亚洲一区制服诱惑| 亚洲高清色综合| 国产精品成人aaaaa网站| 久久成人一区二区| 久久91精品国产91久久久| 久久久人成影片一区二区三区观看| 国产精品网址在线| 97超碰国产精品女人人人爽| 美女性感视频久久久| 久久久亚洲国产天美传媒修理工| 欧美日韩人人澡狠狠躁视频| 久热99视频在线观看| 日本精品视频在线观看| 91高清在线免费观看| 久久99国产精品自在自在app| 国产精品亚洲激情| 欧美伊久线香蕉线新在线| 成人激情视频在线观看| 亚洲美女自拍视频| 伊人精品在线观看| 亚洲色图国产精品| 亚洲美女在线看| 亚洲午夜精品视频| 国产在线98福利播放视频| 97人洗澡人人免费公开视频碰碰碰| 欧美精品一二区| 精品国产美女在线| 久久夜色精品国产亚洲aⅴ| 亚洲精品综合精品自拍| 97超视频免费观看| 国产精品网址在线| 久久久久99精品久久久久| 不卡伊人av在线播放| 国产欧美最新羞羞视频在线观看| 综合国产在线视频| 国产一区二区在线播放| 成人av在线网址| 欧美极品少妇xxxxⅹ喷水| 96国产粉嫩美女| 狠狠色狠狠色综合日日小说| 97国产精品视频人人做人人爱| 日韩欧美高清视频| 久久久爽爽爽美女图片| 伊人伊成久久人综合网小说| 中文字幕精品国产| 亚洲精品www久久久| 久久视频在线免费观看| 夜夜嗨av色综合久久久综合网| 欧美裸体视频网站| 1769国内精品视频在线播放| 中文日韩在线观看| 亚洲精品视频免费在线观看| 欧美成人免费网| 欧美国产乱视频| 日本免费久久高清视频|