隔离级别 | 脏读(Dirty Read) | 不可重复读(NonRepeatable Read) | 幻读(Phantom Read) |
读未提交(Read uncommitted) | 可能 | 可能 | 可能 |
读已提交(Read committed) | 不可能 | 可能 | 可能 |
可重复读(Repeatableread) | 不可能 | 不可能 | 可能 |
可串行化 (Serializable) | 不可能 | 不可能 | 不可能 |
不可重读(Non-Repeatable Reads)
一个事务对读取某些数据后的某个时间,再次读取以前读过的数据,结果却发生了改变或者数据已经被删除。两次读取的结果不一致,这种现象成为不可重复读。
1.将隔离级别设置为读未提交
-- 读未提交
set tx_isolation='read-uncommitted';
不可重复读且脏读
2.将隔离级别设置为读已提交
-- 读已提交
set tx_isolation='read-committed';
3.将隔离级别设置为可重复读
-- 可重复读
set tx_isolation='repeatable-read';
3.将隔离级别设置为串行化
-- 串行化
set tx_isolation='serializable';
这样也就避免了脏读,不可重复读。