我有一个包含大约 65 个表的数据库。其中一个表是一个名为 order_line 的大型 MyISAM 表。时不时地这个表是损坏的。当我使用 CHECK TABLE 命令时,我收到以下消息:
操作 | 消息类型 | 消息文本 检查 | 警告 | “表被标记为崩溃” 检查 | 警告 | “3 个客户正在使用或没有正确关闭表” 检查 | 错误 | “找到 114948 的 1149921 个键” 检查 | 错误 | “腐败”
我在互联网上读了很多这个,最常见的答案是“你应该修理桌子”。这对我有用,但我想知道发生这种情况的原因是什么,以及如何重现这种情况。
我有一个网络应用程序,我们每个客户(300 多个)都有一个数据库。我们运行脚本来更新所有这些数据库。当我这样做时,我很害怕,很多这些表都会损坏。
我还想知道更新所有这些数据库的最佳方法是什么。我是否必须关闭 MySQL 并重新启动它以确保没有用户正在使用表/数据库?