MySQL存储引擎一些原理
- 事务的隔离级别:未提交读(READ UNCOMMITED)、不可重复读(READ COMMITED)、可重复读(REPEATABLE READ)、可串行化(SERIALIZABLE)
- InnoDB与MyISAM:
- InnoDB:支持事务、MVCC的行锁、自增长列、外键、存储引擎索引使用的是B+Tree
- MyISAM:只支持并发插入的表锁,主要用于高负载的select
- MVCC(Multi-Version Concurrency Control):
- 是通过保存数据在某个时间点的快照来实现的
- 实现非阻塞的读操作,不同隔离级别下,MVCC通过读取不同版本的数据来解决"不可重复读" 的问题
- 日志:逻辑日志、物理日志
-
redo log(事务日志)保证事务的原子性和持久性(物理日志)
-
undo log保证事务的一致性,InnoDB的MVCC也是用undo log来实现的(逻辑日志)
-
redo log中带有有checkPoint,用来高效的恢复数据
-
物理日志记录的是修改页的的详情,逻辑日志记录(如binlog)的是操作语句。物理日志恢复的速度快于逻辑日志
-

浙公网安备 33010602011771号