一般来说, 数据库有四种隔离级别如下:
1.READ UNCOMMITTED(读未提交数据):允许事务读取未被其他事务提交的变更。此种隔离级别下,脏读、不可重复读和幻度都可能出现
2.READ COMMITTED(读已提交数据):只允许事务读取已经被其他事务提交的变更。但不可重复读和幻读的问题仍然会出现
3.REPEATABLE READ(可重复读):确保事务可以多次从一个字段中读取相同的值,在这个事务持续期间,禁止其他事务对这个字段进行更新。可重复读可以避免脏读和不可重复读,但幻读的问题仍然可能出现。
4.serializable(串行化): 确保事务可以从一个表中读取相同的行,在这个事务持续期间。禁止其他事务对该表执行插入、更新和删除操作。串行化可以避免所有的并发问题,但性能十分低下。
Oracle 支持的 2 种事务隔离级别:READ COMMITED, SERIALIZABLE. Oracle 默认的事务隔离级别为: READ COMMITED
Mysql 支持 4 中事务隔离级别. Mysql 默认的事务隔离级别为: REPEATABLE READ
在MySQL命令行下,如果想修改MySQL的隔离级别,可输入以下命令:
set transaction isolation level read committed;