MySQL事务的特性
事務(wù)具有很嚴(yán)格的定義,必須同時(shí)滿足4個(gè)特征
原子性、一致性、隔離性、持久性,也就是人們常說的ACID標(biāo)準(zhǔn)
原子性——Atomicity
原子性,是指一個(gè)事務(wù)必須被視為,一個(gè)不可分割的最小工作單元,只有事務(wù)中所有的數(shù)據(jù)庫(kù)操作都執(zhí)行成功,才算整個(gè)事務(wù)執(zhí)行成功
事務(wù)中,如果有任何一個(gè)SQL語(yǔ)句執(zhí)行失敗,已經(jīng)執(zhí)行成功的SQL語(yǔ)句,也必須撤銷,數(shù)據(jù)庫(kù)的狀態(tài)退回到執(zhí)行事務(wù)之前的狀態(tài)
一致性——Consistency
一致性,是指事務(wù)將數(shù)據(jù)庫(kù),從一種狀態(tài)轉(zhuǎn)變?yōu)橄乱环N一致的狀態(tài)
比如,在表中有一個(gè)字段為姓名,具有唯一約束,即姓名不能重復(fù),如果一個(gè)事務(wù)對(duì)姓名進(jìn)行了修改,使姓名變得不唯一了,就破壞了事務(wù)的一致性要求
如果,事務(wù)中的某個(gè)動(dòng)作失敗了,系統(tǒng)可以自動(dòng)撤銷事務(wù),返回初始化的狀態(tài)
隔離性——Isolation
隔離性,又稱為并發(fā)控制、可串行化、鎖等
當(dāng)多個(gè)用戶并發(fā)訪問數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)庫(kù)為每一個(gè)用戶開啟的事務(wù),不能被其他事務(wù)的操作數(shù)據(jù)所干擾,多個(gè)并發(fā)事務(wù)直接要相互隔離
持久性——Durability
持久性,是指事務(wù)一旦提交,所做的修改機(jī)會(huì)永久保存到數(shù)據(jù)庫(kù)中,即使,數(shù)據(jù)庫(kù)發(fā)生故障也不應(yīng)該對(duì)其有任何影響
注意,事務(wù)的持久性不能做到100%的持久,只能從事務(wù)本身的角度來保證持久性,一些外部原因可能導(dǎo)致數(shù)據(jù)庫(kù)發(fā)生故障,比如,硬盤損壞,那么所有提交的數(shù)據(jù)可能都會(huì)丟失
總結(jié)
以上是生活随笔為你收集整理的MySQL事务的特性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL事物的概念
- 下一篇: MySQL事务的提交