InnoDB简介
InnoDB是一种兼顾了高可靠性和高性能的通用存储引擎。在MySQL 5.7中,InnoDB是默认的MySQL存储引擎。除非您配置了其他默认存储引擎,否则发出CREATE TABLE不带ENGINE= 子句的语句将创建一个InnoDB表。
InnoDB的主要优势
- 它的DML操作遵循 ACID模型,并 具有具有 提交,回滚和 崩溃恢复 功能的事务, 以保护用户数据。有关更多信息,请参见 第14.2节“ InnoDB和ACID模型”。
- 行级锁定和Oracle风格的一致读取可提高多用户并发性和性能。有关更多信息,请参见“ InnoDB锁定和事务模型”。
InnoDB表格将您的数据安排在磁盘上,以基于主键优化查询 。每个InnoDB表都有一个称为聚集索引的主键索引,该索引 组织数据以最小化主键查找的I / O。有关更多信息,请参见“聚集索引和二级索引”。- 维护数据 完整性,
InnoDB支持FOREIGN KEY约束。使用外键检查插入,更新和删除操作,以确保它们不会导致不同表之间的不一致。有关更多信息,请参见 “外键约束”。
InnoDB存储引擎功能
| 特征 | 支持 |
|---|---|
| B树索引 | 是 |
| 备份/时间点恢复(在服务器中而不是在存储引擎中实现。) | 是 |
| 集群数据库支持 | 没有 |
| 聚集索引 | 是 |
| 压缩数据 | 是 |
| 资料快取 | 是 |
| 加密数据 | 是(通过加密功能在服务器中实现;在MySQL 5.7和更高版本中,支持静态数据表空间加密。) |
| 外键支持 | 是 |
| 全文搜索索引 | 是(MySQL 5.6和更高版本提供InnoDB对FULLTEXT索引的支持。) |
| 地理空间数据类型支持 | 是 |
| 地理空间索引支持 | 是(MySQL 5.7和更高版本提供InnoDB对地理空间索引的支持。) |
| 哈希索引 | 否(InnoDB在内部将哈希索引用于其自适应哈希索引功能。) |
| 索引缓存 | 是 |
| 锁定粒度 | 行 |
| MVCC | 是 |
| 复制支持(在服务器中而不是在存储引擎中实现。) | 是 |
| 储存限制 | 64TB |
| T树索引 | 没有 |
| 交易次数 | 是 |
| 更新数据字典的统计信息 | 是 |
要将其功能InnoDB与MySQL随附的其他存储引擎进行比较,请参见备用存储引擎中的“ *存储引擎功能”*表 。
InnoDB增强功能和新功能
有关InnoDB增强功能和新功能的信息,请参阅:
- “ MySQL 5.7的新增
InnoDB功能”中 的增强功能列表 。 - 该 发行说明。
其他InnoDB信息和资源
- 有关
InnoDB相关术语和定义,请参见MySQL术语表。 - 有关专用于
InnoDB存储引擎的论坛,请参见 MySQL Forums :: InnoDB。 InnoDB该版本与MySQL在同一GNU GPL许可证版本2(1991年6月)下发布。有关MySQL授权的更多信息,请参见 www.mysql.com/company/leg…
更多内容欢迎关注我的个人公众号“韩哥有话说”,100G人工智能学习资料,大量后端学习资料等你来拿。