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;