一、并發事務問題
1). 贓讀:一個事務讀到另外一個事務還沒有提交的數據。

比如 B 讀取到了 A 未提交的數據。
2). 不可重復讀:一個事務先后讀取同一條記錄,但兩次讀取的數據不同,稱之為不可重復讀。

事務 A 兩次讀取同一條記錄,但是讀取到的數據卻是不一樣的。
3). 幻讀:一個事務按照條件查詢數據時,沒有對應的數據行,但是在插入數據時,又發現這行數據已經存在,好像出現了 " 幻影 " 。

二、事務隔離級別
為了解決并發事務所引發的問題,在數據庫中引入了事務隔離級別。主要有以下幾種:
Read uncommitted(讀未提交) :解決了更新丟失,但還是可能會出現臟讀
Read committed(讀提交) :解決了更新丟失和臟讀問題
Repeatable read(可重復讀) :解決了更新丟失、臟讀、不可重復讀、但是還會出現幻讀
Serializable(可串行化) :解決了更新丟失、臟讀、不可重復讀、幻讀(虛讀)
1). 查看事務隔離級別
SELECT @@TRANSACTION_ISOLATION;
2). 設置事務隔離級別
SET [ SESSION | GLOBAL ] TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }
注意:事務隔離級別越高,數據越安全,但是性能越低。