数据库 中的 事物
什么是事務(wù)?
事務(wù)是由一步或幾步數(shù)據(jù)庫操作序列組成邏輯執(zhí)行單元,這系列操作要么全部執(zhí)行,要么全部放棄執(zhí)行。程序和事務(wù)是兩個不同的概念。一般而言:一段程序中可能包含多個事務(wù)。(說白了就是幾步的數(shù)據(jù)庫操作而構(gòu)成的邏輯執(zhí)行單元)
事務(wù)具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這四個特性也簡稱ACID性。
(1)原子性:事務(wù)是應(yīng)用中最小的執(zhí)行單位,就如原子是自然界最小顆粒,具有不可再分的特征一樣。事務(wù)是應(yīng)用中不可再分的最小邏輯執(zhí)行體。(最小了,不可再分了)
(2)一致性:事務(wù)執(zhí)行的結(jié)果,必須使數(shù)據(jù)庫從一個一致性狀態(tài),變到另一個一致性狀態(tài)。當(dāng)數(shù)據(jù)庫中只包含事務(wù)成功提交的結(jié)果時,數(shù)據(jù)庫處于一致性狀態(tài)。一致性是通過原子性來保證的。(說罷了就是白狗變成了黑狗,不能出現(xiàn)斑點狗!)
(3)隔離性:各個事務(wù)的執(zhí)行互不干擾,任意一個事務(wù)的內(nèi)部操作對其他并發(fā)的事務(wù),都是隔離的。也就是說:并發(fā)執(zhí)行的事務(wù)之間不能看到對方的中間狀態(tài),并發(fā)執(zhí)行的事務(wù)之間不能相互影響。(說白了,就是你做你的,我做我的!)
(4)持續(xù)性:持續(xù)性也稱為持久性,指事務(wù)一旦提交,對數(shù)據(jù)所做的任何改變,都要記錄到永久存儲器中,通常是保存進物理數(shù)據(jù)庫。(說白了就是一條道跑到黑)
MySQL如何支持事務(wù)?
MYSQL的事務(wù)處理主要有兩種方法
1.用begin,rollback,commit來實現(xiàn)
begin開始一個事務(wù)
rollback事務(wù)回滾
??? commit 事務(wù)確認
2.直接用set來改變mysql的自動提交模式
??? ? ?mysql默認是自動提交的,也就是你提交一個query,就直接執(zhí)行!可以通過
??? ? ?set autocommit = 0 禁止自動提交
??? ? ?set autocommit = 1 開啟自動提交
? ? ? ?來實現(xiàn)事務(wù)的處理
總結(jié)
- 上一篇: Mysql查询数据库状态及信息
- 下一篇: mysql的学习笔记