MySQL REPEATABLE_READ 隔离级别:幻读问题及数据一致性
在 REPEATABLE_READ 隔离级别下,事务会保证读取的数据一致性,即在事务开启后,读取的数据保持不变。这意味着如果在事务中执行了多次相同的查询操作,将会得到相同的结果。因此,理论上来说,不会造成数据不正确的情况。
但是,在实际应用中,REPEATABLE_READ 隔离级别下存在幻读的问题。幻读指的是,在一个事务中,第一次查询时没有查到某些数据,但在事务提交前,另一个事务插入了符合第一次查询条件的数据,当第二次查询时,第一次查询没有查到的数据会出现,导致数据不一致。
因此,REPEATABLE_READ 隔离级别下仍然有可能出现数据不正确的情况,但是幻读的问题比 READ_COMMITTED 隔离级别下的情况要少。对于需要保证数据一致性的应用场景,建议使用 SERIALIZABLE 隔离级别。
原文地址: https://www.cveoy.top/t/topic/noS2 著作权归作者所有。请勿转载和采集!