1、讀未提交
事務a可以讀取到事務b未提交的資料
設定mysql資料庫的隔離級別
set session transaction檢視當前資料庫事務隔離級別isolation
level
read
uncommitted
客戶端a使用事務查詢資料
begin查詢結果select
*from tb_demo
客戶端b使用事務更新(並未提交事務)
begin客戶端a再次查詢得到結果,可以發現a可以查詢到b未提交的資料讀未提交會產生幻讀,不可重複讀,髒讀的問題update tb_demo set math =
4000
2、讀已提交
設定事物的隔離級別為讀已提交
set session transaction客戶端a使用事務查詢資料isolation
level
read
committed
begin查詢結果select * from tb_demo
客戶端b使用事務更新(並未提交事務)
begin客戶端a再次查詢得到結果,可以發現a查詢不到b未提交的資料客戶端b提交事務update tb_demo set math =
100
commit客戶端a再次查詢結果(客戶端a能夠讀取到b已經提交的資料)讀已提交可以解決髒讀 存在不可重複讀,幻讀問題
3、可重複讀
設定資料庫的隔離級別
set session transaction客戶端a查詢資料isolation
level
repeatable
read
客戶端b更新資料
begin此時使用客戶端a查詢資料(資料為之前查詢到的資料)update tb_demo set math =
100
客戶端b提交事務
commit此時使用客戶端a再次查詢資料(資料依然為之前查詢到的資料)在整個事務中讀取到的資料不會改變,所以稱為可重複讀
可重複讀解決髒讀,不可重複讀問題,存在幻讀問題
4、序列化
客戶端b需等待客戶端a事務完成提交後才可繼續進行。是完整的隔離級別,會鎖定對應的資料**,因而會有效率的問題。
mysql資料庫事務隔離級別
1修改事務隔離級別 全域性修改 修改mysql.ini配置檔案 mysqlid transaction isolation repeatble read 對當前session修改 登入mysql客戶端後,執行命令set session transaction isolation level read...
MYSQL 資料庫 事務 隔離級別
定義 在資料庫 中,為了有效保證併發讀取資料的正確性,提出的事務隔離級別,由低到高依次為 1 read uncommitted 未授權讀取 讀未提交 2 read committed 授權讀取 讀提交 3 repeatable read 可重複讀取 4 serializable 序列化 這四個事務隔...
MySQL資料庫事務隔離級別
一 資料庫事務併發訪問引發的問題 二 mysql資料庫的四種事務隔離級別 隔離級別 名稱髒讀 不可重複讀 幻讀資料庫預設級別 read uncommitted 讀未提交是是 是read committed 讀已提交否是 是oracle sql server repeatable read 可重複讀否...