文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  使用 InnoDB 表的优势

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 表”.

  • 您可以通过查询 Performance Schema 表来监控存储引擎的性能细节。请参阅 第 17.16 节,“InnoDB 与 MySQL Performance Schema 的集成”

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

  • InnoDB 旨在提高 CPU 效率,并在处理大量数据时实现最佳性能。

  • InnoDB 表可以处理大量数据,即使在文件大小限制为 2GB 的操作系统上也是如此。

有关可以应用于 MySQL 服务器和应用程序代码的特定于 InnoDB 的调整技术,请参阅 第 10.5 节,“针对 InnoDB 表进行优化”