举一个体现mysql Repeatable read作用的例子
时间: 2023-05-15 09:05:48 浏览: 75
一个体现 MySQL Repeatable Read 作用的例子是:在一个高并发的电商网站中,多个用户同时访问同一个商品的详情页面,如果使用 Repeatable Read 隔离级别,那么每个用户看到的商品信息都是一致的,不会出现一个用户看到的是商品 A,另一个用户看到的是商品 B 的情况。这是因为 Repeatable Read 隔离级别保证了在同一个事务中,多次读取同一行数据时,读取到的数据是一致的,不会受到其他事务的修改影响。
相关问题
mysql Repeatable read底层实现原理
MySQL 的 Repeatable read 是通过 MVCC(多版本并发控制)实现的。MVCC 是通过在每个数据行上创建一个版本链来实现的,每个版本都有一个时间戳,用于确定该版本的可见性。在 Repeatable read 模式下,每个事务都会看到一个一致的快照,这个快照是在事务开始时创建的。因此,即使其他事务对数据进行了修改,当前事务也只能看到它开始时的数据。这就保证了事务的可重复性。
mysql repeatable-read事务级别是使用事务级别快照吗
是的,MySQL中的REPEATABLE READ事务级别使用的是事务级别快照。在REPEATABLE READ事务级别下,MySQL会在事务开始时创建一个快照,该快照用于记录当前事务开始时数据库中所有数据的状态。在事务执行过程中,如果有其他事务对数据库进行了修改,则REPEATABLE READ事务级别下的事务不会看到这些修改,而是始终看到事务开始时的快照数据。
快照是通过MVCC技术实现的,MySQL会为每个事务分配一个唯一的事务ID(Transaction ID),并在每个数据行中记录该数据行最后一次修改的事务ID。在REPEATABLE READ事务级别下,事务只会看到在它开始之前已经提交的事务所做的修改,并通过快照机制来实现数据的一致性和隔离性。
因此,REPEATABLE READ事务级别使用的是事务级别快照,而不是行级快照。行级快照是在某个时间点对某些行进行备份,而事务级别快照是在事务开始时对整个数据库进行备份,用于实现REPEATABLE READ事务级别下的数据隔离。