MySQL默认的事务隔离级别是RR(Repeatable Read), 可重复读
查看MySQL的事务隔离级别
可重复读就是通过MVCC(multi-version concurrency control), 多版本并发控制来实现的. MVCC最大的好处就是读不加锁, 读写不冲突. mysql的innoDB采用的是行级锁, 利用mvcc是用来提高读性能. mvcc原理是在每一条记录后面新增两列: create version和delete version insert的时候create version加1; update的时候把 老记录的delete version变为当前事务版本号, 新纪录的create version也是当前事务版本号; delete的时候把delete version变为当前事务版本号; select的时候符合以下条件的记录可以被查出来:delete version大于当前事务版本号的记录; create version 小于或者等于当前事务版本号 只针对read commited和repeatable read两种; 因为读未提交(read uncommited)是读未提交的, 所以不存在版本问题; 序列化(serializable)是会所有的行都加锁.
MySQL相关文章推荐:
MySql 解析顺序 MySQL事务隔离级别 MySQL日志(错误日志, 二进制日志, 慢查询日志等)介绍 MySQL的多版本并发控制(MVCC) MySQL 索引(单列索引, 组合索引, 全文索引)及索引失效 MySQL索引数据结构 MySQL char和varchar的区别 MySQL主从复制的过程及原理 MySQL优化