如果我在修复或优化非常大的 table 时重新启动 MariaDB 服务器,会发生什么情况?

What happens if I restart a MariaDB server while it is Repairing or Optimizing a very large table?

如果我在修复或优化非常大的 table(例如至少 20GB)时重新启动 MariaDB 服务器,会发生什么情况?可能是因为我需要用 table 做其他事情,我只是觉得无聊。

REPAIROPTIMIZE 设计为防碰撞。 (或者至少在很大程度上。)

例如,

OPTIMIZE 将 table 复制到 tmp table 名称。完成后,它会在内部执行 RENAME TABLE,速度很快。

OPTIMIZE 只在极少数情况下才需要 MyISAM。 InnoDB 更不需要它。你的用例是什么?我可能会反驳说它是 'futile' 或 'not worth the effort'.

只有 MyISAM 需要修复。我希望你没有使用那个过时的引擎。

更多

  • 考虑改用 InnoDB;我们可以进一步讨论这个问题。 REPAIR 很少需要,plus 是自动化的。
  • 架构是什么?数据流是什么样的?我可能有避免索引过时的技巧。 (.MYD 文件的布局方式对于 某些 数据流是有问题的。)
  • 当没有关于索引损坏的投诉但查询突然变慢时,使用 ANALYZE TABLE(代替)。