Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Benefits of Using InnoDB Tables

17.1.1 使用 InnoDB 表的优点

InnoDB 表具有以下优点:

  • 如果服务器意外退出,因为硬件或软件问题,无论数据库中正在发生什么事情,在重新启动数据库时,您不需要做任何特殊的事情。InnoDB崩溃恢复自动完成提交的更改,并撤销未提交的更改,允许您重新启动并继续从您离开的地方开始。见 第 17.18.2 节,“InnoDB 恢复”

  • InnoDB 存储引擎维护自己的缓冲池,该缓冲池将表和索引数据缓存在主内存中,以便快速访问数据。经常使用的数据直接从内存中处理。这缓冲池适用于许多类型的信息,并加速处理。在专用数据库服务器上,通常将物理内存的 80% 分配给缓冲池。见 第 17.5.1 节,“缓冲池”

  • 如果您将相关数据拆分到不同的表中,可以设置外键以强制参照完整性。见 第 15.1.20.5 节,“FOREIGN KEY 约束”

  • 如果磁盘或内存中的数据变得损坏,校验和机制将在您使用数据之前警告您损坏的数据。innodb_checksum_algorithm 变量定义了 InnoDB 使用的校验和算法。

  • 当您设计数据库时,适当地设计主键列对于每个表,涉及这些列的操作将自动优化。它非常快速地引用主键列在 WHERE 子句、ORDER BY 子句、GROUP BY 子句和连接操作中。见 第 17.6.2.1 节,“聚簇索引和辅助索引”

  • 插入、更新和删除操作通过自动机制优化,称为更改缓冲。InnoDB 不仅允许并发读取和写入访问同一个表,还缓存更改的数据以流畅磁盘 I/O。见 第 17.5.2 节,“更改缓冲”

  • 性能优势不仅限于大型表和长时间查询。当同一行数据被反复访问时,自适应哈希索引将接管,使这些查找变得更快,如同它们来自哈希表。见 第 17.5.3 节,“自适应哈希索引”

  • 您可以压缩表和关联的索引。见 第 17.9 节,“InnoDB 表和页压缩”

  • 您可以加密数据。见 第 17.13 节,“InnoDB 静态数据加密”

  • 您可以创建和删除索引,并执行其他 DDL 操作,而对性能和可用性影响很小。见 第 17.12.1 节,“在线 DDL 操作”

  • 截断文件每表表空间非常快,并可以释放磁盘空间供操作系统重用,而不仅仅是 InnoDB。见 第 17.6.3.2 节,“文件每表表空间”

  • 表数据的存储布局对于 BLOB 和长文本字段更高效,以 DYNAMIC 行格式。见 第 17.10 节,“InnoDB 行格式”

  • 您可以通过查询 INFORMATION_SCHEMA 表来监控存储引擎的内部工作。见 第 17.15 节,“InnoDB INFORMATION_SCHEMA 表”

  • 您可以通过查询性能模式表来监控存储引擎的性能详细信息。见 第 17.16 节,“InnoDB 与 MySQL 性能模式集成”

  • 您可以将 InnoDB 表与其他 MySQL 存储引擎的表混合使用,甚至在同一个语句中。例如,您可以使用连接操作将 InnoDBMEMORY 表中的数据组合到单个查询中。

  • InnoDB 被设计为 CPU 高效和最大性能,以处理大量数据。

  • InnoDB 表可以处理大量数据,甚至在操作系统文件大小限制为 2GB 的情况下。

要了解特定于 InnoDB 的调整技术,可以应用于 MySQL 服务器和应用程序代码,请参阅 第 10.5 节,“为 InnoDB 表优化”