Innodb隔離級別:
1. 可重複讀:
結論1:事務1在查詢主鍵id>=1中,事務2可更新id>=1的記錄,事務3可新插入id>=1的數據;事務2提交後,事務1再次查詢id=1的內容不變。(mvcc實現)
結論2:事務1在主鍵id<=2強加for update時,事務2插入id=40成功,而事務3插入id=0等待,說明是間隙鎖;
正常來說,innodb引擎自動使用間隙鎖來避免幻讀(原因是因爲innodb採用單行鎖+間隙鎖組合而成的行鎖,會鎖定一個範圍和記錄本身的行),參數默認innodb_locaks_unsafe_for_binlog爲false時開啓,True時禁用。
2. 可串行化:
結論1:事務1查詢id=1,事務2 更新id=2等待,而事務3 更新id=3成功,說明有鎖並且是間隙鎖。