date: 2019-05-22 16:53:22
事務(wù)隔離級別
- 讀未提交:一個事務(wù)還沒提交時蘑拯,它做的變更就能被別的事務(wù)看到
- 讀提交:一個事務(wù)提交之后腾降,它做的變更才會被其他事務(wù)看到
- 可重復(fù)讀:一個事務(wù)執(zhí)行過程中看到的數(shù)據(jù)抗蠢,總是跟這個事務(wù)在啟動時看到的數(shù)據(jù)是一致的
- 串行化
事務(wù)隔離的實現(xiàn)
在MySQL中,實際上每條記錄在更新的時候都會同時記錄一條回滾操作。記錄上的最新值歧杏,通過回滾操作陪每,都可以得到前一個狀態(tài)的值影晓。
假設(shè)一個值從1被按順序改成了2镰吵、3、4挂签,在回滾日志里面就會有類似下面的記錄疤祭。每次有事務(wù)需要獲取歷史值時,根據(jù)事務(wù)的視圖饵婆,通過回滾日志即可得到歷史數(shù)據(jù)勺馆。
這里帶來的一個問題就是回滾日志啥時候刪除,答案是在沒有事務(wù)依賴的時候刪除侨核。所以長事務(wù)是很不推薦的使用草穆。
事務(wù)的啟動方式
begin/start transaction
commit/rollback
set autocommit=0,這個命令會將這個線程的自動提交關(guān)掉