事务的特性和隔离级别
1、事務的特性:(面試題)
l?原子性:處于同一個事務中的多條語句,要么全都成功,要么全都不成成功。
l?一致性:事務必須使數據庫從一個一致性狀態變換到另外一個一致性狀態。比如轉賬:轉賬前a+b=2000,轉賬后a+b=2000
l?隔離性:多線程并發時,一個事務不能被其他事務所干擾。
l?持久性:數據應該被永久性的保存起來。(硬盤,而不是內存)
ACID
2、事務的隔離性專題
如果不考慮事務的隔離性,會導致以下不正確的問題:
a、臟讀:指一個事務讀到了另外一個事務中未提交的數據
b、不可重復讀:指一個事務讀到了另外一個事務update后(事務提交了)的數據
c、虛讀:指一個事務讀到了另外一個事務insert的數據
?
3、演示操作:
3.1數據庫控制隔離級別相關的語句(必須用在事務之中):
?
數據庫有四個隔離級別:
READ?UNCOMMITTED:臟讀、不可重復讀、虛讀都有可能發生。
READ?COMMITTED:防止臟讀發生;不可重復讀、虛讀都有可能發生。
REPEATABLE?READ:(MySQL默認級別)防止臟讀、不可重復讀;虛讀有可能發生。
SERIALIZABLE:防止臟讀、不可重復讀、虛讀的發生
?
特點:從上到下,隔離級別越高,數據越安全,但是效率越低
?
select?@@tx_isolation; 查看當前數據庫的隔離級別
set?transaction??isolation??level?四個級別之一;更改當前事務的隔離級別
?
轉載于:https://www.cnblogs.com/baijin05/p/5073383.html
總結
以上是生活随笔為你收集整理的事务的特性和隔离级别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深信服桌面云(aDesk)学习笔记
- 下一篇: Windows 7 下IIS 7.5 结