首页/数据/数据库速查/表空间与碎片整理:OPTIMIZE 与 ANALYZE
本包目录(495 条)
MySQL 基础与连接36 条
SQL 语法52 条
用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条Redis 运维与场景124 条

表空间与碎片整理:OPTIMIZE 与 ANALYZE

长期大量增删改会留下碎片与空洞:OPTIMIZE TABLE 重建表回收空间(近似 DDL,慎用于生产),ANALYZE TABLE 刷新统计信息提升计划质量。

数据库速查数据更新于 2026-10-12
用途表维护
OPTIMIZE重建 + 回收空间,大表耗时且需空间
ANALYZE更新索引统计,轻量

使用示例

使用示例
ANALYZE TABLE orders;
OPTIMIZE TABLE orders;   -- 一般先用在线工具或低峰期执行
CHECK TABLE orders;      -- 一致性检查
SHOW TABLE STATUS LIKE 'orders'\G  -- 看 Data_free 判断碎片
OPTIMIZE TABLE 在 InnoDB 上等价于重建(可能锁写),生产建议用 pt-online-schema-change 或在从库先演练。

易错点

  • 碎片多不等于一定慢,先看查询是否走索引再决定是否重建
  • 统计信息过期会让优化器选错索引,大表建议定期 ANALYZE 或开启直方图统计

数据来源与参考

  • MySQL 8.0 Reference Manual: OPTIMIZE TABLE Statement

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌