时间:2021-07-01 10:21:17 帮助过:3人阅读
数据库事务的隔离级别有4个,由低到高依次为:
Read uncommitted | 未授权读取 读未提交 | 读可允许其他 两个事务不能同时进行写操作 |
事务B读取事务A为提交的数据 | 避免更新丢失 会出现脏读 |
Read committed | 授权读取 读提交 | 读可允许其他 未提交的事务禁止其他事务访问进行 | 事务A读取数据 事务B更改数据 事务A读取B更改后的数据,前后结果不一致 | 避免脏读 会出现不可重复读(重复读取结果不同) |
Repeatable read | 可重复读取 | 读不允许写事务进行 写禁止其他事务进行 | 事务A读取R1和修改R2 事务B则不能修改R1和读取R2,B不会影响A 如果A包含一个统计某个范围内记录的操作,而B恰好在范围内插入一条记录,造成A幻读 | 可重复读取 会出现幻读 |
Serializable | 序列化 | 事务只能一个接着一个执行,不能并发执行 | 最高的事务隔离级别,性能很低,一般很少用 | 避免脏读,避免不可重复读,避免幻读 |
数据库事务的四种隔离级别
标签: