15.1 InnoDB简介

原文地址:https://dev.mysql.com/doc/refman/8.0/en/innodb-introduction.html

InnoDB是一个兼顾了高可用和高性能的存储引擎,在MySQL8.0里,它是默认的存储引擎。如果你没有配置一个其他的存储引擎作为默认的存储引擎,那么省略了ENGINE=CREATE TABLE建表语句默认创建的就是InnoDB表。

InnoDB的主要优势

  • 它的DML操作遵循ACID模型,利用可提交和可回滚的事务以及故障恢复能力来保护用户的数据,具体请查阅 “第15.2节 InnoDB和ACID模型”。
  • 行级锁和ORACLE风格的一致性读增强了多用户并发能力和性能,具体请查阅 “第15.7节 InnoDB的锁和事务模型”。
  • InnoDB表在磁盘上的数据组织方式优化了基于主键的查询,每张InnoDB表都拥有一个称之为“聚簇索引”的主键索引, 这种组织数据的方式让主键查找消耗最少的IO性能。详情请查阅 “第15.6.2.1节 聚簇索引和非聚簇索引”
  • 为了保证数据的完整性,InnoDB引擎支持外键约束。在有外键的情况下,增删改操作都会被检查以确保数据在多个表之间保持一致,详情请查阅 “第15.6.1.5节 InnoDB的外键约束”。

表15.1 InnoDB存储引擎特性

特性 是否支持
B-tree 索引
备份/按时间点恢复(server层实现,非存储引擎层)
分布式数据库支持
聚簇索引
数据压缩
数据缓存
数据加密 是(在server层通过加密函数来实现,5.7及以上版本,支持data-at-rest tablespace加密)
外键支持
全文索引 是(InnoDB在MySQL5.6及以上版本支持)
地理空间数据类型支持
地理空间索引支持 是(InnoDB在MySQL5.7及以上版本支持)
hash索引
索引缓存
锁粒度 行级
MVCC
主从复制 是(在server层实现,而不是存储引擎层)
存储容量限制 64TB
T-tree索引
事务
数据字典统计更新

如果想对比InnoDB和MySQL其他的存储引擎,可以查看 “第16章 其他存储引擎” 中的存储引擎特性表。

InnoDB的功能增强和新特性

如果想详细了解InnoDB的功能增强以及新特性,可以参阅:

  • “第1.4节 MySQL8.0新特性”中的InnoDB 功能增强清单
  • 版本说明

其他InnoDB相关的信息和资源