MySQL中InnoDB存儲引擎的事務隔離級別與事務處理 1、事務進行中,不得用set transaction命令更改隔離級別。但可以用set {global|session} transaction更改隔離級別。文檔上說set transaction可以改變當前會話的下一個事務的隔離級別,實際測試發現不起做用。 2、用set [{global|session}] tx_isolation={READ-COMMITTED|REPEATABLE-READ}改變事務隔離級別。 3、read committed隔離級別,二進制日志必須為row格式,或者不啟用二進制日志。 4、autocommit為OFF時,上一個事務結束(rollback或commit)後,立即開啟一個新的事務。事務的快照點,為事務中的第一條SQL語句(SELECT,DML)執行的時間點。 5、autocommit為ON時,每一個SQL語句(SELECT,DML)結束後,立即開啟一個新的事務。事務的快照點,為事務中的(唯一的)SQL語句(SELECT,DML)執行的時間點。 6、start transaction語句,立即開啟一個新的事務。事務的快照點,為事務中的第一條SQL語句(SELECT,DML)執行的時間點。 7、start transaction語句後,未執行commit或rollback來結束一個事務,再次執行start transaction語句,會隱式commit之前的事務,然後再開啟一個新的事務。