-
請描述事務的四大特征 :
<1>. 原子性: 事務是一個整體 , 不可分割 , 要么同時成功, 要么同時失敗.
<2>. 持久性: 當事務提交或回滾后, 數據庫會持久化的保存數據.
<3>. 隔離性: 多個事務之間, 隔離開, 相互獨立.
<4>. 一致性: 事務操作的前后 , 數據總量不變 (例如: 轉賬時: 孟亮給帥兵轉賬是 一個事務, 轉賬完畢后. 兩人余額的和不變.) -
請描述什么是臟讀, 幻讀, 不可重復讀 ?
- 臟讀: 讀取到了一個事務 未提交的數據.
- 不可重復讀: 一個事務中, 兩次連續的讀取 ,結果不一致(中間被其它事務更改了).
- 幻讀: 一個事務A在執行DML語句時, 另一個事務B也在執行DML語句 , B修改了A修改過的 數據, 導致A在查詢時就像發生了幻覺一樣(A更改的內容A看不到了.)
-
請描述事務的隔離級別
//三種級別鎖: 頁級,表級,行級(共享鎖,排它鎖).- 讀未提交 : read uncommitted; (可能產生:臟讀, 不可重復讀, 幻讀)
- 讀已提交 : read committed; (可能產生: 不可重復度, 幻讀)
- 可重復讀 : repeatable read;(mysql默認值) (可能產生: 幻讀)
- 串行化 : serializable;
- 查看數據庫當前的隔離級別: select @@tx_isolation; (了解)
- 數據庫設置隔離級別: set global transaction isolation level 級別字符串; (了解)