解决mysql得幻读
一、MVCC+快照读
MVCC大概由版本链、undolog(回滚日志)和read view组成
read view组成
read commit(读已提交) 每次select都会生成一个read view,所以一个事务中的多个select会读取到不同的结果,所以会产生不可重复读。
repeatable(可重复读)每个事务都会生成一个read view。
二、next-key-lock+当前读
mysql索引
mysql索引有Hash、B树、B+树,默认采用B+树