作为一个DBA,你必须管理磁盘I/O和磁盘空间,防止I/O子系统饱和,防止磁盘空间耗尽。ACID设计模型需要一定量的I/O,这可能看似多余,但却有助于确保数据可靠性。在这些限制条件下,InnoDB会尝试优化数据库工作和磁盘文件的组织以减少磁盘I/O的使用。有时I/O会被延迟,直到数据库不再忙,或直到所有都恢复到一个一致性状态,比如快速关机后的数据库服务重启。
本节讨论默认类型的MySQL表(InnoDB表)在磁盘I/O和磁盘空间方面的考虑:
- 控制后台运行的用来提高查询性能的磁盘I/O。
- 启用或禁用以磁盘I/O位代价来提高提供额外的持久性的特性。
- 用多个小文件来组织表,或大一些的文件,或两者的混合。
- 平衡redo 日志文件大小和日志文件变慢时的I/O活动,
- 怎样重新组织表以优化查询性能。