innodb采用mvcc的方式来获取基于某个时间点的数据库的表的快照来实现数据的一致性读,基于某个时间点,已提交的事务所做的变更查询是可见的,之后的变更或未提交的不可见。但是可能会出现这样一种异常,在同一个事务内先做完的变更可见,这可能会有下面这种问题:如果你更新了表的某些行,查询对最近更新和没任何变化的行是可见的,如果此时别的会话对这张表做了更新,意味着你看见的数据可能已经不存在数据库中了。
如果事务的隔离级别是RR,所有的在同一个事务内的一致性读的快照都基于自身所处的同一事务中,通过提交事务可以获得更新的一致性快照,使当前或之后的查询可见。
阅读(630) | 评论(0) | 转发(0) |