国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

mysql數據庫的事務(wù)指的是什么

發(fā)布時(shí)間:2021-09-14 18:07 來(lái)源:億速云 閱讀:0 作者:柒染 欄目: Mysql 歡迎投稿:712375056

本篇文章為大家展示了數據的事務(wù)指的是什么,內容簡(jiǎn)明扼要并且容易理解,絕對能使你眼前一亮,通過(guò)這篇文章的詳細介紹希望你能有所收獲。

一、什么是事務(wù)?

數據庫事務(wù)(Transaction)是訪(fǎng)問(wèn)并可能操作各種數據項的一個(gè)數據庫操作序列,這些操作要么全部執行,要么全部不執行,是一個(gè)不可分割的工作單位。事務(wù)由事務(wù)開(kāi)始與事務(wù)結束之間執行的全部數據庫操作組成。

例如:從A賬號給B賬號轉帳,對應于如下兩條sql語(yǔ)句
update from account set money=money+100 where name=‘b’;
update from account set money=money-100 where name=‘a(chǎn)’;

這兩條update語(yǔ)句應該作為一個(gè)整體來(lái)運行,要保證同時(shí)成功,或者同時(shí)失??;不應該存在一個(gè)成功,一個(gè)失敗的情況。

二、數據庫開(kāi)啟事務(wù)命令

我們可以使用下面的語(yǔ)句來(lái)開(kāi)啟或者結束一個(gè)事務(wù)。

  • start transaction 開(kāi)啟事務(wù)

  • rollback 回滾事務(wù)

  • commit 提交事務(wù)

例如,我們可以把上面的銀行轉賬的update語(yǔ)句放到一個(gè)事務(wù)中執行。

start transaction;
update from account set money=money+100 where name=‘b’;
update from account set money=money-100 where name=‘a(chǎn)’;
commit;

三、事務(wù)的特征:ACID

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

  • 一致性(Consistency):事務(wù)必須使數據庫從一個(gè)一致性狀態(tài)變換到另外一個(gè)一致性狀態(tài)。

  • 隔離性(Isolation):事務(wù)的隔離性是多個(gè)用戶(hù)并發(fā)訪(fǎng)問(wèn)數據庫時(shí),數據庫為每一個(gè)用戶(hù)開(kāi)啟的事務(wù),不能被其他事務(wù)的操作數據所干擾,多個(gè)并發(fā)事務(wù)之間要相互隔離。

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

四、事務(wù)的隔離級別

多個(gè)線(xiàn)程開(kāi)啟各自事務(wù)操作數據庫中數據時(shí),數據庫系統要負責隔離操作,以保證各個(gè)線(xiàn)程在獲取數據時(shí)的準確性。

如果不考慮隔離性,可能會(huì )引發(fā)如下問(wèn)題:

  • 臟讀:指一個(gè)事務(wù)讀取了另外一個(gè)事務(wù)未提交的數據。

  • 不可重復讀:在一個(gè)事務(wù)內讀取表中的某一行數據,多次讀取結果不同。

  • 虛讀(幻讀):是指在一個(gè)事務(wù)內讀取到了別的事務(wù)插入的數據,導致前后讀取不一致。

數據庫共定義了四種隔離級別:

Serializable:可避免臟讀、不可重復讀、虛讀情況的發(fā)生。(串行化)
Repeatable read(MySQL的默認值):可避免臟讀、不可重復讀情況的發(fā)生。(可重復讀)
Read committed:可避免臟讀情況發(fā)生(讀已提交)。
Read uncommitted:最低級別,以上情況均無(wú)法保證。(讀未提交)

我們可以可以通過(guò)下面的語(yǔ)句來(lái)查看MySQL的事務(wù)隔離級別和設置隔離級別:

set (GLOBAL|SESSION) transaction isolation level 設置事務(wù)隔離級別
select @@tx_isolation 查詢(xún)當前事務(wù)隔離級別

下面的語(yǔ)句將查看MySQL數據庫當前的事務(wù)隔離級別。

下面的語(yǔ)句將MySQL的事務(wù)隔離級別設置成read committed,在這種隔離級別下,將會(huì )發(fā)生臟讀的問(wèn)題。

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

麻花传媒MV一二三区别在哪里看| 国产九九久久99精品影院| 噜噜噜亚洲色成人网站∨| 久久人与动人物A级毛片| 啊灬啊灬啊灬快灬高潮了| 92国产精品午夜福利免费|