Oracle默認的事務隔離級別為讀已提交,MySQL默認的事務隔離級別為可重復讀。MySQL的事務隔離級別有以下四種:
- 讀未提交。事務A可以讀到事務B未提交的數據。會引起臟讀。
Mysql設置事務隔離級別為讀未提交:
set session transaction isolation level read uncommitted;
- 讀已提交。事務A只能讀到事務B已提交的數據。不可重復讀。
MySQL設置事務隔離級別為讀已提交:
set session transaction isolation level read committed;
- 可重復讀。事務A無法讀取事務B已提交的的數據。會產生幻讀。
MySQL設置事務隔離級別為可重復讀:
set session transaction isolation level repeatable read;
- 串行化。讀寫操作都是串行的,如果事務A對表T進行了讀或者寫操作,事務B必須等事務A提交或者回滾后才能操作表T(事務A和事務B只能讀同時進行)。
MySQL設置事務隔離級別為串行化:
set session transaction isolation level serializable;