所以InnoDB的隔离级别到底是用锁 还是 MVCC实现的?
2条回答 默认 最新
- 龙哥学java 2021-03-26 20:17关注
事务的隔离级别中,读提交,可重复读,是InnoDB引擎通过mvcc机制实现的,解决的是读写冲突的问题。而锁是解决并发时,争夺资源的问题。就好比一个事务开启后(可重复读)执行到第一条sql语句,他会生成当前系统的一份read view,快照生成后,不管其他事务如何改变数据,他都会根据trx_id 去拿到开始那份数据,这就解决了读写带来的冲突。 再说下行锁,当一个事务开启修改一行时,会拿到当前行的锁,commit后释放。如果在还没commit时,有新的事务要改这一行,需等待上个事务释放后才能执行。所以二者没有啥关系
解决 1无用