日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

什么是事務(wù)?

老生常談:事務(wù)是邏輯上的一組操作,要么都執(zhí)行,要么都不執(zhí)行

經(jīng)典實(shí)例:轉(zhuǎn)賬給你,我減少100,你增加100,不能因?yàn)橄到y(tǒng)故障導(dǎo)致,我錢轉(zhuǎn)出了,而你沒收到

事務(wù)的四大特性

  • A:原子性,最小執(zhí)行單位,要么都執(zhí)行,要么都不執(zhí)行
  • C:一致性,?
  • I:隔離性,并發(fā)訪問數(shù)據(jù)庫(kù)是,兩個(gè)事務(wù)是獨(dú)立的,
  • D:持久性

串行執(zhí)行是不會(huì)事務(wù)執(zhí)行很順暢,但當(dāng)不同事務(wù)同時(shí)執(zhí)行時(shí)可能出現(xiàn)各種情況,以student表為例

# 表定義

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL,
  `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

# 初始數(shù)據(jù)

MySQL> select * from student;
+----+----------+---------------------+
| id | name     | create_time         |
+----+----------+---------------------+
|  1 | Jarry    | 2020-08-13 09:14:01 |
|  2 | Hameimei | 2020-08-13 09:14:09 |
+----+----------+---------------------+
2 rows in set (0.00 sec)

事務(wù)并發(fā)可能發(fā)生的情況

a. 臟讀

一個(gè)事務(wù)讀到另一個(gè)事務(wù)未提交的事務(wù)

Mysql事務(wù)隔離級(jí)別

 

session_2在session_1讀期間改了數(shù)據(jù)后,又回退了事務(wù),導(dǎo)致session_1讀的數(shù)據(jù)根本不存在

臟讀只在讀未提交隔離級(jí)別才出現(xiàn)

b. 不可重復(fù)讀

Mysql事務(wù)隔離級(jí)別

 

一個(gè)事務(wù)中,可以讀到另一個(gè)事務(wù)已經(jīng)提交的數(shù)據(jù)

不可重復(fù)讀在讀未提交、讀已提交隔離級(jí)別都可能出現(xiàn)

c. 幻讀

Mysql事務(wù)隔離級(jí)別

 

一個(gè)事務(wù)查詢某個(gè)條件查出記錄,之后別的事務(wù)對(duì)數(shù)據(jù)進(jìn)行插入,那么第一個(gè)事務(wù)再用同樣的條件查詢時(shí)得到的結(jié)果和一開始的到的結(jié)果不一致

不可重復(fù)讀讀未提交、讀已提交、可重復(fù)讀隔離級(jí)別都可能出現(xiàn)

兩者區(qū)別?

對(duì)于前者, 只需要鎖住滿足條件的記錄

對(duì)于后者, 要鎖住滿足條件及其相近的記錄

不可重復(fù)讀重點(diǎn)在于update和delete,而幻讀的重點(diǎn)在于insert

事務(wù)的隔離級(jí)別

Mysql事務(wù)隔離級(jí)別有4個(gè):讀未提交、讀已提交、可重復(fù)讀、可串行化

# 讀未提交

Mysql事務(wù)隔離級(jí)別

 

# 讀已提交

Mysql事務(wù)隔離級(jí)別

 

#可重復(fù)讀

Mysql事務(wù)隔離級(jí)別

 

session_2 讀 session_1 發(fā)生變更提交,并且自己也提交后才可以讀到session_1的變更

可以解決臟讀、不可重復(fù)度,但是不能解決幻讀問題

#可重復(fù)讀

Mysql事務(wù)隔離級(jí)別

 

四種級(jí)別比較

Mysql事務(wù)隔離級(jí)別

 

分享到:
標(biāo)簽:事務(wù) Mysql
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定