Heim  >  Artikel  >  Datenbank  >  轻松了解MySQL中损坏的MyISAM表_MySQL

轻松了解MySQL中损坏的MyISAM表_MySQL

WBOY
WBOYOriginal
2016-06-01 13:55:44684Durchsuche

  即使MyISAM表格式非常可靠(SQL语句对表做的所有改变在语句返回之前被写下),如果下列任何事件发生,你依然可以获得损坏的表:

  ? MySQLd进程在写中间被杀掉。

  ? 发生未预期的计算机关闭(例如,计算机被关闭)。

  ? 硬件故障。

  ? 你可以同时在正被服务器修改的表上使用外部程序(如myisamchk)。

  ? MySQL或MyISAM代码的软件缺陷。

  一个损坏的表的典型症状如下:

  ? 当在从表中选择数据之时,你得到如下错误:

  ? Incorrect key file for table: '...'. Try to repair it

  ? 查询不能在表中找到行或返回不完全的数据。

  你可以用CHECK TABLE statement语句来检查MyISAM表的健康,并用REPAIR TABLE修复一个损坏的MyISAM表。当mysqld不运行之时,你也可以用myisamchk命令检查或修理一个表。

  如果你的表变得频繁损坏,你应该试着确定为什么会这样的原因。要明白的最重要的事是表变得损坏是不是因为服务器崩溃的结果。你可以在错误日志中查找最近的restarted mysqld消息来早期验证这个。如果存在这样一个消息,则表损坏是服务器死掉的一个结果是很有可能的。否则,损坏可能在正常操作中发生。这是一个缺陷。你应该试着创建一个展示这个问题的可重复生成的测试案例。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn