主页
InnoDB 简介
InnoDB 是一种兼顾高可靠和高性能的通用存储引擎。在 MySQL 5.7 中,InnoDB 是默认的 MySQL 存储引擎。
InnoDB 主要优势
- InnoDB 的 DML 操作支持 ACID 模型,事务具有提交、回滚和崩溃恢复的功能,以保护用户数据。
- 支持行级锁定和 Oracle 风格的一致性读取,提高了多用户并发性和性能。
- InnoDB 将数据基于主键顺序存储在磁盘上以优化查询性能。主键索引又称为 “聚簇索引”,可以提高查找的IO效率。
- InnoDB 支持外键约束,关键字
FOREIGN KEY
。外键约束可以防止插入、更新和删除时导致相关表数据不一致。
功能特性 | 是否支持 |
---|---|
B树索引 | |
通过备份或时间点进行恢复(由server支持,而不是存储引擎) | |
分布式数据库 | |
聚簇索引 | |
压缩数据 | |
数据缓存 | |
加密(由server支持,而不是存储引擎) | |
外键约束 | |
全文检索索引 | |
地理空间数据类型支持 | |
地理空间索引支持 | |
Hash 索引(InnoDB 为自适应Hash索引,仅限内部使用) | |
索引缓存 | |
锁粒度 | 行级锁 |
MVCC | |
复制集支持(由server支持) | |
存储极限 | 64TB |
T树索引 | |
事务 | |
更新数据字典的统计信息 |
TODO
ACID 模型
- A(atomicity):原子性
- C(consistency):一致性
- I(isolation):隔离性
- D(durability):持久性
ACID 模型是一套数据库设计原则,侧重点在数据和关键任务的可靠性。InnoDB 存储引擎严格遵守 ACID 模型。但也可以通过调整 MySQL 的设置,来降低一些可靠性来换取更大的性能或吞吐量。
原子性
InnoDB 的原子性涉及到事务。相关功能包括:
- autocommit配置
- COMMIT语句
- ROLLBACK语句
一致性
InnoDB 的一致性主要涉及 InnoDB 的内部处理,以保护数据免遭崩溃。相关的功能包括:
隔离性
InnoDB 的隔离性体现在事务的隔离级别,相关特性包括: