事務(wù)

一.事務(wù)含義

一個(gè)或一組sql語句組成一個(gè)執(zhí)行單元,這個(gè)執(zhí)行單元要么全部執(zhí)行,要么全部不執(zhí)行。

2.事務(wù)概念

1.在mysql中的數(shù)據(jù)用各種不同的技術(shù)存儲在文件(或內(nèi)存)中。
2.通過show engines;來查看mysql支持的存儲引擎。

二.事務(wù)的特點(diǎn)(ACID)

- A 原子性(Atomicity)

一個(gè)事務(wù)不可再分割,要么都執(zhí)行要么都不執(zhí)行

- C 一致性(Consistency)

一個(gè)事務(wù)執(zhí)行會使數(shù)據(jù)從一個(gè)一致狀態(tài)切換到另外一個(gè)一致狀態(tài)

- I 隔離性(Isolation)

一個(gè)事務(wù)不受其他事務(wù)的干擾,多個(gè)事務(wù)互相隔離的

- D 持久性(Durability)

一個(gè)事務(wù)一旦提交,則會永久的改變數(shù)據(jù)庫的數(shù)據(jù).

三、事務(wù)的使用步驟 ★

了解:
隱式(自動)事務(wù):
沒有明顯的開啟和結(jié)束,本身就是一條事務(wù)可以自動提交,比如insert、update、delete
顯式事務(wù):具有明顯的開啟和結(jié)束

使用顯式事務(wù):
①開啟事務(wù)
set autocommit=0;
start transaction;#可以省略

②編寫一組邏輯sql語句
注意:sql語句支持的是insert、update、delete

設(shè)置回滾點(diǎn):
savepoint 回滾點(diǎn)名;

③結(jié)束事務(wù)
提交:commit;
回滾:rollback;
回滾到指定的地方:rollback to 回滾點(diǎn)名;

四、并發(fā)事務(wù)

1、事務(wù)的并發(fā)問題是如何發(fā)生的?
多個(gè)事務(wù) 同時(shí) 操作 同一個(gè)數(shù)據(jù)庫的相同數(shù)據(jù)時(shí)
2、并發(fā)問題都有哪些?
臟讀:一個(gè)事務(wù)讀取了其他事務(wù)還沒有提交的數(shù)據(jù),讀到的是其他事務(wù)“更新”的數(shù)據(jù)
不可重復(fù)讀:一個(gè)事務(wù)多次讀取,結(jié)果不一樣
幻讀:一個(gè)事務(wù)讀取了其他事務(wù)還沒有提交的數(shù)據(jù),只是讀到的是 其他事務(wù)“插入”的數(shù)據(jù)
3、如何解決并發(fā)問題
通過設(shè)置隔離級別來解決并發(fā)問題
4、隔離級別


image.png

幾種事務(wù)隔離級別會出現(xiàn)問題匯總

級別 臟讀 不可重復(fù)讀 幻讀
read uncommitted:讀未提交
read committed:讀已提交 ×
repeatable read:可重復(fù)讀 × ×
serializable:串行化 × × ×

mysql中默認(rèn) 第三個(gè)隔離級別 repeatable read
oracle中默認(rèn)第二個(gè)隔離級別 read committed

例子1.演示事務(wù)的使用步驟
#開啟事務(wù)
SET autocommit=0;
START TRANSACTION;
#編寫一組事務(wù)的語句
UPDATE account SET balance = 1000 WHERE username='張無忌';
UPDATE account SET balance = 1000 WHERE username='趙敏';

#結(jié)束事務(wù)
ROLLBACK;#回滾
#commit;提交
SELECT * FROM account;
演示事務(wù)對于delete和truncate的處理的區(qū)別

delete可回滾truncate不可回滾

SET autocommit=0;
START TRANSACTION;

DELETE FROM account;
ROLLBACK;

演示savepoint 的使用
SET autocommit=0;
START TRANSACTION;
DELETE FROM account WHERE id=25;
SAVEPOINT a;#設(shè)置保存點(diǎn)
DELETE FROM account WHERE id=28;
ROLLBACK TO a;#回滾到保存點(diǎn)

SELECT * FROM account;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 導(dǎo)語:計(jì)算機(jī)硬件在飛速發(fā)展,數(shù)據(jù)規(guī)模在急速膨脹,但是數(shù)據(jù)庫仍然使用是十年以前的架構(gòu)體系,WiredTiger 嘗試...
    isgiker閱讀 3,568評論 0 7
  • 一、事務(wù) 1、事務(wù)四要素:ACID 對于事務(wù),我之前的理解是很粗糙的,不就是為了保證操作的原子性么?一般訂單系統(tǒng)或...
    張偉科閱讀 1,499評論 0 5
  • 這篇文章能夠闡述清楚跟數(shù)據(jù)庫相關(guān)的四個(gè)概念:事務(wù)、數(shù)據(jù)庫讀現(xiàn)象、隔離級別、鎖機(jī)制 一、事務(wù) 先來看下百度百科對數(shù)據(jù)...
    a6fc544968bb閱讀 529評論 0 1
  • 低素質(zhì)的老男人不能接觸 發(fā)現(xiàn)一個(gè)問題,現(xiàn)在五十多歲往上的老年人,特別多。其中低素質(zhì)的也特別多。 ...
    越長越漂亮的美女閱讀 529評論 0 1
  • 張清的日精進(jìn)第209天 從昨天到今天下午,因?yàn)橐患话l(fā)事件,醫(yī)院院長,主任,值班護(hù)士全都一直在備戰(zhàn)狀態(tài),沒能好好在...
    kiyoi2017閱讀 108評論 0 1

友情鏈接更多精彩內(nèi)容