1 InnoDB 存储引擎的好处
InnoDB 表有如下的好处:
- 如果服务因为硬件或软件原因意外退出,不管此时数据库发生了什么,你在重启后不需要做任何事情
- InnoDB 缓存维持它自己的缓冲池用来缓存表或索引数据在主内存中当数据被 access 时。经常使用的数据在内存中被直接处理,在专门的数据库服务器,80% 的物理内存被设置为缓冲池
- 如果你把相关的数据放入不同的表,你可以使用外键强制引用完整性
- 当你对数据库的每个表设置了合适的主键,涉及到这些列的操作自动被优化。当在
WHERE
子句、ORDER BY
子句、GROUP BY
子句、join 操作中引用主键时,这将非常快 - 插入、更新、删除操作被优化,通过自动的机制,叫做
change buffering
- 自适应哈希索引。当同样的行被一个表反复的访问时,哈希索引被建立
- 你可以在线执行创建或删除索引或其他 DDL 操作,对性能和可用性几乎没有影响
- 针对 BLOB 或 long text 字段,表的存储布局更加高效
- 你可以监控存储引擎内部的工作情况,通过查询
INFORMATION_SCHEMA
表 - 你可以监控存储引擎的性能,通过查询
Performance Schema
表
2 参考资料
官网: https://dev.mysql.com/doc/refman/8.0/en/innodb-benefits.html
Buffer Pool:参考我的文章:《15.5.1 Buffer Pool(重点).md》
change buffering:参考我的文章:《15.5.2 Change Buffer.md》
Adaptive Hash Index:参考我的文章:《15.5.3 Adaptive Hash Index.md》