MySQL 优化所有表?

新手上路,请多包涵

MySQL 有一个 OPTIMIZE TABLE 命令,可用于回收 MySQL 安装中未使用的空间。有没有办法(内置命令或通用存储过程)为数据库和/或服务器安装中的每个表运行此优化,还是您必须自己编写脚本?

原文由 Alan Storm 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 710
2 个回答

您可以使用 mysqlcheck 在命令行中执行此操作。

一个数据库:

 mysqlcheck -o <db_schema_name>

所有数据库:

 mysqlcheck -o --all-databases

原文由 Ike Walker 发布,翻译遵循 CC BY-SA 2.5 许可协议

如果本地版主允许这样做,我想推广我很久以前写的一个 PHP 库 - https://github.com/Simbiat/optimize-tables

该库的重点是允许根据表的参数和统计信息“智能”执行 OPTIMIZE、ANALYZE、CHECK 和 REPAIR 命令。我已经在 CRON 中为 https://simbiat.ru 运行它超过 2 年了,它一直一帆风顺(当然,除了一些调整和小修复)。

为什么要使用这样的东西?好吧,README 提供了更多详细信息,但简而言之,只有当您真正从中受益时,它才能帮助运行相关操作。至少,它可以节省您的资源。

原文由 Simbiat 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏