1. MVCC
网上有很多参考资料,这里不做解释。
2. 锁
这里不说意向锁, 只谈共享锁S 排他锁X
S | X | |
---|---|---|
S | 兼容 | 不兼容 |
X | 不兼容 | 不兼容 |
3. 隔离级别
- read-uncommitted
写加x锁, 读不加任何锁, 所以能读到数据库事务未提交数据(脏读)
- read-committed
一致性非锁定读-读最新快照读取的数据正在update或delete不会等待锁释放, 而是去读快照数据(undo)
- repeatable read
一致性非锁定读-读一开始行数据版本
- SERIALIZABLE
写加x锁,读加s锁