什么是幻读,脏读,不可重复读呢?

什么是幻读,脏读,不可重复读呢?
- 脏读是指事务A读取了事务B尚未提交的数据,导致事务A读取到了不一致或错误的数据。
- 不可重复读是指在一个事务中,多次执行相同的查询,但在查询期间其他事务对数据进行了修改,导致多次查询返回的结果不一致。
- 幻读是指在一个事务中,事务A查询了某个范围的数据集,然后事务B在该范围内插入或删除了数据并提交,接着事务A再次查询相同范围的数据集,结果集发生了变化,出现了新增或减少的记录,就好像产生了幻觉。
不同的隔离级别,在并发事务下可能会发生的问题:
隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
Read Uncommited 读取未提交 | 是 | 是 | 是 |
Read Commited 读取已提交 | 否 | 是 | 是 |
Repeatable Read 可重复读 | 否 | 否 | 是 |
Serialzable 可串行化 | 否 | 否 | 否 |