MySQL事务深入分析
MySQL锁机制深入分析
MySQL事务与日志原理
脏读A读取了B没有提交的对age的修改。
一次事务中两次读到数据不同。
B插入数据,A第一次计算1,第二次计算2,造成幻读
加行锁
1,如果没有主键索引和唯一索引,innodb会扫描整张表,并将隐藏的聚集索引都锁住。
2.因为回表,辅助索引是二级索引,比如非聚簇索引中搜索到id=1,然后再去聚簇索引去找对应的数据。所以也会锁住主键索引。
左开右闭可以保证查询一定范围内第一次查询和第二次查询范围内数据的数量,左开右闭的话插不进来,解决幻读问题。
锁住资源最长时间
事务1需要事务2的锁,事务2需要事务1的锁
MVCC如何做到千人千面