MySQL存储引擎一些原理

  • 事务的隔离级别:未提交读(READ UNCOMMITED)、不可重复读(READ COMMITED)、可重复读(REPEATABLE READ)、可串行化(SERIALIZABLE)
  • InnoDB与MyISAM
    1. InnoDB:支持事务、MVCC的行锁、自增长列、外键、存储引擎索引使用的是B+Tree
    2. MyISAM:只支持并发插入的表锁,主要用于高负载的select
  • MVCC(Multi-Version Concurrency Control):
    1. 是通过保存数据在某个时间点的快照来实现的
    2. 实现非阻塞的读操作,不同隔离级别下,MVCC通过读取不同版本的数据来解决"不可重复读" 的问题
  • 日志:逻辑日志、物理日志
    1. redo log(事务日志)保证事务的原子性和持久性(物理日志)

    2. undo log保证事务的一致性,InnoDB的MVCC也是用undo log来实现的(逻辑日志)

    3. redo log中带有有checkPoint,用来高效的恢复数据

    4. 物理日志记录的是修改页的的详情,逻辑日志记录(如binlog)的是操作语句。物理日志恢复的速度快于逻辑日志

posted @ 2017-04-26 13:12  感遇  阅读(307)  评论(0)    收藏  举报