MyISAM:无事务、锁表、读写互相阻塞、索引不缓存数据、数据与索引分离,都是【非聚集索引】 InnoDB:有事务,默认用主键or唯一非空列or隐藏列建立【聚集索引】(只能有一个),索引和数据在同一个B(平衡)树,影响增改性能,速度快,特性如下:
- 插入缓冲(insert buffer)
- 两次写(double write)
- 自适应哈希索引(adaptive hash index,AHI)
- 异步IO(asynchronous IO,AIO)
- 刷新邻接页(flush neighbor page)
稠密索引、稀疏索引
下面两个是很常见的知识点,一定要反复复习记住
ACID
- 原子性 atomicity
- 一致性 consistency
- 隔离性 isolation
- 持久性 durability
UCRS
隔离级别 | 脏读 | 不可重读 | 幻读 | 英文名 | 默认 |
---|---|---|---|---|---|
RU 读未提交 | √ | √ | √ | Read uncommitted | |
RC 读已提交 | × | √ | √ | Read committed | 其他 |
RR 可重读 | × | × | √ | Repeatable read | MySQL |
S 串行化 | × | × | × | Serializable |
不可重读:更新,一个事务两次读取内容不一样 幻读:插入,一个事务两次读取条数不一样,MySQL 用 MVCC 解决 多版本并发控制 MVCC Multiversion Concurrency Control
- DB_TRX_ID 最近增改事务ID
- DB_ROLL_PTR 回滚指针,上一版本 0x...
- DB_ROW_ID 自增ID,没有主键时的聚簇索引
- DELETED_BIT 删除