mysql 幻读 重复读 脏读
时间: 2023-11-03 20:44:05 浏览: 100
mysql可重复读和幻读的理解
5星 · 资源好评率100%
MySQL 中的幻读、重复读和脏读都和事务隔离级别有关。
幻读是指在同一事务中,多次执行同一个查询语句,结果集不同。比如一个事务中先后执行两次 `SELECT * FROM table WHERE column > 100`,第一次结果集只有一条记录,第二次结果集有两条记录,这两次执行产生了幻读现象。
重复读是指在同一事务中,多次执行同一个查询语句,结果集相同。比如一个事务中先后执行两次 `SELECT * FROM table WHERE column > 100`,结果集都只有一条记录,没有产生幻读现象。
脏读是指在一个事务中读取了另一个事务未提交的数据。比如有两个事务,A 事务读取了 B 事务更新但未提交的数据,这时 A 事务读到的数据是脏数据。
为了避免这些问题,需要设置合适的事务隔离级别。常用的事务隔离级别有 READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ 和 SERIALIZABLE。其中,REPEATABLE READ 是 MySQL 默认的事务隔离级别。如果需要解决幻读问题,可以将事务隔离级别设置为 SERIALIZABLE。
阅读全文