11

每隔一段时间,我就会收到一条错误消息,说我的一张表“被标记为崩溃,应该修复”。然后我做一个修复表并修复它。是什么导致它们被标记为崩溃,我该如何防止它?我在 MySQL 5.0.45 中使用 MyISAM 表。

4

4 回答 4

6

表损坏可能有几个原因,手册中对此进行了详细讨论。

为了对抗它,以下事情最有效:

  1. 确保您始终正确关闭 MySQL
  2. 考虑使用 --myisam-recover 选项在未正确关闭的情况下自动检查/修复您的表
  3. 确保您使用的是最新版本,因为已知的损坏错误通常会尽快修复
  4. 通过测试仔细检查您的硬件,看看它是否导致问题。sysbenchmemtest86之类的工具通常可以帮助验证事情是否按应有的方式工作。
  5. 确保没有任何东西从外部接触数据目录,例如病毒检查程序、备份程序等...
于 2008-09-18T21:18:28.760 回答
3

通常,它发生在数据库未正确关闭时,例如系统崩溃或硬件问题。

于 2008-09-18T21:05:46.250 回答
3

我曾经和你一样从 mysql 得到错误。

我以这种方式解决了我的问题

  1. 将所有 myisam 表转换为 InnoDB(您可以在 stackoverflow.com 和搜索引擎中搜索“myisam vs InnoDB”以找出原因)
  2. 为了从 MySQL 获得最佳性能,请使用第三方程序 MONyog (MySQL Monitor and Advisor) 并检查性能提示

这两个步骤救了我。我希望这些也对你有很大帮助。

于 2009-11-03T15:18:26.747 回答
0

这可能是很多事情,但MySQL 性能博客提到了可能导致隐藏损坏的内存、操作系统或 MySQL 错误。此外,那篇文章和另一篇文章提到了在进行崩溃恢复时要记住的几件事。

于 2008-09-18T21:05:07.000 回答