1 | 2 | 脏读 | 不可重复读 | 幻读 | 备注 | 3 |
Read uncommitted | 读未提交 读时可以读写 写时可以读,不可以写 | √ | √ | √ | 如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。读到其他事务未提交的数据,产生脏读。写事务时,别的事务可以读取到。 | 写事务阻止其他写事务,可以读。读事务不会阻止其他读写事务。 |
Read committed | 读提交 读时可以读写。 写时不可以读写 | × | √ | √ | 读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。只能读其他事务提交的数据,未提交的数据不能读。写事务时,别的事务不可读取到。 | 写事务会阻止其他读写事务。 读事务不会阻止其他任何读写事务。 |
Repeatable read | 可重复读取 读时不可以写,可以读 写时不可以读写 | × | × | √ | 读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。两个事务可以同时读,写事务时禁止任务操作。 | 写事务会阻止其他读写事务。 读事务会阻止其他写事务,不阻止其他读事务 |
Serializable | 序列化 | × | × | × | 它要求事务序列化执行,事务只能一个接着一个地执行,不能并发执行 | 读加共享锁,写加排他锁。这样读取事务可以并发,但是读写,写写事务之间都是互斥的,基本上就是一个个执行事务,所以叫串行化 |
数据库隔离级别-yao
最新推荐文章于 2022-05-06 14:36:08 发布