国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL事務(wù)的基礎(chǔ)學(xué)習(xí)以及心得分享

2024-07-24 12:50:50
字體:
供稿:網(wǎng)友

事務(wù)是邏輯上的一組操作,組成這組操作的各個單元,要不全都成功要不全都失敗,這個特性就是事務(wù),下面就是關(guān)于MySQL事務(wù)學(xué)習(xí)中的心得分享:

事務(wù)的特性

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

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

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

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

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

事務(wù)的并發(fā)訪問問題

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

1.臟讀:在一個事務(wù)中,當(dāng)讀取數(shù)據(jù)時,讀到了另一個事務(wù)未提交的數(shù)據(jù)。  

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

看代碼:

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

2.不可重復(fù)讀:在一個事務(wù)中,兩次讀取的數(shù)據(jù)內(nèi)容不一致,這是因為在查詢時,有時間間隔,數(shù)據(jù)被另一個事務(wù)已經(jīng)修改提交了,那就會出現(xiàn)問題。

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

事務(wù)的隔離級別

上面介紹了3種事務(wù)并發(fā)問題!現(xiàn)在介紹一下數(shù)據(jù)庫提供的解決方案!

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

2.read committed:讀取已經(jīng)提交的數(shù)據(jù) :可以解決臟讀  。

3.repeatable read:重讀讀取:可以解決臟讀 和 不可重復(fù)讀 。

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

上面的“2”是oracle數(shù)據(jù)庫默認(rèn)設(shè)置,“3”是mysql數(shù)據(jù)庫默認(rèn)的設(shè)置。

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

首先介紹兩個語法:

1.查看mysql數(shù)據(jù)庫默認(rèn)的隔離級別:select @@tx_isolation

如圖:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 温州市| 丰宁| 呼玛县| 龙泉市| 原阳县| 肥城市| 伊金霍洛旗| 夹江县| 彭阳县| 长垣县| 新晃| 昭平县| 大连市| 汉川市| 姚安县| 康平县| 麟游县| 保康县| 舒城县| 阜新市| 大厂| 无锡市| 定西市| 肥西县| 蓬莱市| 丁青县| 宁河县| 新建县| 定安县| 怀宁县| 娄底市| 玉溪市| 镇原县| 台北市| 新竹县| 保康县| 夏邑县| 东丽区| 保德县| 漳州市| 禹州市|