那你上面说rr级别下没有快照读
时间: 2024-03-28 20:38:05 浏览: 24
非常抱歉,我的回答有误。在 MySQL 的可重复读(Repeatable Read)隔离级别下,确实是使用快照读(Snapshot Read)机制,而不是读已提交(Read Committed)隔离级别下的当前读(Current Read)机制。在可重复读隔离级别下,MySQL 在事务开始时创建一个快照,并在整个事务期间使用该快照来读取数据,以保证读取的数据是一致的。这种机制避免了脏读和不可重复读的问题,但仍然可能存在幻读的问题。非常抱歉给您造成困扰。
相关问题
那rc级别下快照读当前读,和rr级别下快照读有什么区别
在 MySQL 的读已提交(Read Committed)隔离级别下,使用的是当前读(Current Read)机制,而不是可重复读(Repeatable Read)隔离级别下的快照读(Snapshot Read)。当前读是指读取的是当前数据行的最新版本,而不是之前提交的版本,因此在读已提交隔离级别下,可能会出现脏读和不可重复读的问题。
相比之下,可重复读隔离级别下的快照读机制,保证了事务读取的是一个一致的数据库快照,而不是当前的数据行,因此可以避免脏读和不可重复读的问题。
总的来说,读已提交隔离级别下的当前读机制,可能会导致更多的并发问题,而可重复读隔离级别下的快照读机制,可以提供更高的隔离性和数据一致性,但也可能会导致幻读的问题。
rc级别下的当前读快照读,和rr级别下有什么区别
rc级别下的当前读(Read Committed)和快照读(Snapshot Read)是在事务中进行的读取操作,而rr级别下则没有快照读的概念。
在rc级别下,当前读是指读取最新提交的数据,并且在事务中其他操作还未提交之前,其他事务不可见当前事务所做的修改。而快照读则是指读取当前事务开始时的数据快照,并且在事务中其他操作还未提交之前,其他事务不可见当前事务所做的修改。
相比之下,在rr级别下,只有当前读,没有快照读。当前读也是读取最新提交的数据,并且在事务中其他操作还未提交之前,其他事务不可见当前事务所做的修改。但是,rr级别下的当前读会在事务中一直保持锁住状态,直到事务结束,这可能会导致其他事务的阻塞。
因此,rc级别下的快照读可以提高并发性能,但是会牺牲一定的数据一致性。而rr级别下只有当前读,可以保证数据的一致性,但是可能会牺牲并发性能。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)