MySql详解(六)
MySql詳解(六)
MySql事務(wù)
一、含義
事務(wù):一條或多條sql語句組成一個(gè)執(zhí)行單位,一組sql語句要么都執(zhí)行要么都不執(zhí)行
二、特點(diǎn)(ACID)
A 原子性:一個(gè)事務(wù)是不可再分割的整體,要么都執(zhí)行要么都不執(zhí)行
C 一致性:一個(gè)事務(wù)可以使數(shù)據(jù)從一個(gè)一致狀態(tài)切換到另外一個(gè)一致的狀態(tài)
I 隔離性:一個(gè)事務(wù)不受其他事務(wù)的干擾,多個(gè)事務(wù)互相隔離的
D 持久性:一個(gè)事務(wù)一旦提交了,則永久的持久化到本地
?
三、事務(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、隔離級別
臟讀 不可重復(fù)讀 幻讀
read uncommitted:讀未提交 × × ×
read committed:讀已提交 √ × ? ×
repeatable read:可重復(fù)讀 √ ? √ ? ×
serializable:串行化 √ √ ? √
?
轉(zhuǎn)載于:https://www.cnblogs.com/yujiwei/p/7943032.html
總結(jié)
以上是生活随笔為你收集整理的MySql详解(六)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平板32g够用吗
- 下一篇: 关于虚拟机vmware三种网络模式