是什么原因导致需要修复表格?

时间:2008-09-18 20:56:47

标签: mysql database

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

4 个答案:

答案 0 :(得分:6)

表格损坏可能有几个原因,我们会在manual中详细讨论。

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

  1. 确保您始终正确关闭MySQL
  2. 考虑使用--myisam-recover选项在未正确关闭的情况下自动检查/修复表格
  3. 确保您使用的是最新版本,因为已知的损坏错误通常是尽快修复的
  4. 通过测试仔细检查您的硬件,看它是否导致问题。像sysbenchmemtest86这样的工具通常可以帮助验证某些内容是否正常运行。
  5. 确保没有任何东西在外部触及数据目录,例如病毒检查程序,备份程序等......

答案 1 :(得分:3)

通常,当数据库没有正常关闭时,例如系统崩溃或硬件问题,就会发生这种情况。

答案 2 :(得分:3)

我曾经像你一样从mysql中获取错误。

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

  1. 将所有myisam表转换为InnoDB(您可以在stackoverflow.com和搜索引擎中搜索“myisam vs InnoDB”以查找原因)
  2. 要从MySQL获得最佳性能,请使用第三方程序MONyog (MySQL监视器和顾问)并检查性能提示
  3. 这两个步骤救了我。我希望这些也能帮助你。

答案 3 :(得分:0)

可能有很多东西,但是MySQL Performance Blog提到了可能导致隐藏损坏的错误内存,操作系统或MySQL错误。此外,{和another article提到了在进行崩溃恢复时要记住的几件事。

相关问题