数据库引擎中的4个隔离级别:
一、READ UNCOMMITTED 未提交读(无限制)
1、不会发出共享锁来防止其他事务修改当前事务读取的行
2、不会被排他锁阻塞,可以读取其他事务已修改但尚未提交的行,这种读取称为脏读
二、READ COMMITTED 已提交读(语句级别)
1、共享锁会防止其他事务修改当前事务读取期间的行
2、其他事务可以在当前事务的各个语句之间更改数据,这种读称取为不可重复读
3、共享锁会阻止语句读取其他事务已修改但尚未提交的行
注意:如果开启 READ_COMMITTED_SNAPSHOT 已提交读快照 模式,数据库引擎 会使用行版本控制,详情可参考文章后面的 行版本控制部分
三、REPEATABLE READ 可重复读(事务级别)
1、共享锁会防止其他事务修改当前事务读取的行,直到当前事务完成为止
2、共享锁会阻止语句读取其他事务已修改但尚未提交的行
3、其他事务可以插入与当前事务所发出语句的搜索条件相匹配的新行,这种读取称为幻读
四、SERIALIZABLE 可序列化(事务级别)
1、共享锁会防止其他事务修改当前事务读取的行,直到当前事务完成为止
2、共享锁会阻止语句读取其他事务已修改但尚未提交的行
3、范围锁会阻止其他事务插入与当前事务所发出语句的搜索条件相匹配的新行