## 15.11 InnoDB 磁盘 I/O 和文件空间管理

[15.11.1 InnoDB 磁盘 I/O](innodb-disk-io.html)
[15.11.2 文件空间管理](innodb-file-space.html)
[15.11.3 InnoDB 检查点](innodb-checkpoints.html)
[15.11.4 对表进行碎片整理](innodb-file-defragmenting.html)
[15.11.5 使用 TRUNCATE TABLE 回收磁盘空间](innodb-truncate-table-reclaim-space.html)

作为 DBA，您必须管理磁盘 I/O 以防止 I/O 子系统变得饱和，并管理磁盘空间以避免填满存储设备。这[酸](glossary.html#glos_acid)设计模型需要一定数量的 I/O，这可能看起来是多余的，但有助于确保数据的可靠性。在这些限制条件下，`InnoDB`尝试优化数据库工作和磁盘文件的组织以最小化磁盘 I/O 量。有时，I/O 会推迟到数据库不忙，或者直到所有内容都需要进入一致状态，例如在数据库重新启动期间[快速关机](glossary.html#glos_fast_shutdown).

本节讨论使用默认类型的 MySQL 表（也称为`InnoDB`表）：

-   控制用于提高查询性能的后台 I/O 量。

-   启用或禁用以额外 I/O 为代价提供额外耐用性的功能。

-   将表组织成许多小文件、几个大文件或两者的组合。

-   平衡重做日志文件的大小与日志文件变满时发生的 I/O 活动。

-   如何重组表以获得最佳查询性能。
