InnoDB表的DML操作遵循ACID模型,并且支持事物(提交,回滚,崩溃恢复),以保证用户的数据安全,支持行级锁定和Oracle风格的一致读取,保证了多用户并发和性能。
InnoDB表会将你的数据安排在磁盘上,并基于主键优化查询,每个InnoDB表都有一个称之为 聚集索引 的主键索引,这个索引将组织数据以最小化主键查找的I/O.
InnoDB支持MVCC,其实就是一致性非锁定读的技术,这个内容我们后续有时间会聊聊。
InnoDB支持外键。
InnoDB存储引擎适用场景总结:适用于需要经常修改和插入,对并发和QPS要求较高,且对数据一致性要求较高的表。
以下是InnoDB在5.7版本中支持的功能:
特征
支持
B树索引
是
备份/时间点恢复(在服务器中而不是在存储引擎中实现。)
是
集群数据库支持
没有
聚集索引
是
压缩数据
是
资料快取
是
加密数据
是(通过加密功能在服务器中实现;在MySQL 5.7和更高版本中,支持静态数据表空间加密。)
外键支持
是
全文搜索索引
是(MySQL 5.6和更高版本提供InnoDB对FULLTEXT索引的支持。)
地理空间数据类型支持
是
地理空间索引支持
是(MySQL 5.7和更高版本提供InnoDB对地理空间索引的支持。)
哈希索引
否(InnoDB在内部将哈希索引用于其自适应哈希索引功能。)
索引缓存
是
锁定粒度
行
MVCC
是
复制支持(在服务器中而不是在存储引擎中实现。)
是
储存限制
64TB
T树索引
没有
交易次数
是
更新数据字典的统计信息
是