【问题标题】:MyISAM table keeps crashing. How to go about finding the cause or debugging it?MyISAM 表不断崩溃。如何去寻找原因或调试它?
【发布时间】:2012-12-26 16:37:28
【问题描述】:

在我管理的一个站点上,我有一个设置为 MYISAM 的表,并且它经常崩溃。每次自动修复都失败,只好进去运行REPAIR TABLE命令。我已经查看了可能的解决方案,例如这个:MySQL table is marked as crashed 看起来最好的方法可能是将表更改为 InnoDB。

但是,该表有一个 FULLTEXT 索引,如果我可以删除它就没有问题,但是该站点是在框架上运行的(特别是 Elgg),所以我不知道什么样的损坏或问题我以后可能会有,所以这可能不是一个好的选择。

所以对于我的问题:我怎样才能找到崩溃的原因?该站点位于 Web 主机上,并在 PHP 上运行。

【问题讨论】:

  • 向您的托管服务提供商公司提交故障单,了解他们的 mysqld 服务器软件是否经常崩溃。如果是,请他们将您的数据库移动到不同的 MySQL 服务器计算机。或者,解雇您的托管服务提供商并获得更好的托管服务提供商。另外,在 Elgg 支持论坛上询问这个问题。除非出现严重错误,否则不应发生这种情况。
  • 您多久写入一次数据库?如果你在桌子上运行大量的INSERTs 或UPDATEs,你可能想开始使用事务......但如果你不是每分钟运行数百次写入,我倾向于同意Ollie Jones 对此...除非 MySQL 出现问题,否则它真的不应该发生。
  • MySQL 服务器本身崩溃了吗?使用SHOW GLOBAL STATUS LIKE 'Uptime' 检查服务器的正常运行时间。如果服务器正常运行时间很短,则整个服务器更有可能崩溃,这可能是一个截然不同的解决方案。
  • 感谢您的指点。我认为不是因为,虽然我不太确定网络主机如何处理它的数据库,但我有许多其他数据库/表用于同一帐户下的不同站点,所有这些都很好。唯一崩溃的是每次针对一个特定数据库/站点的一个特定表。

标签: mysql myisam elgg


【解决方案1】:

这可能是由于同一张表上的大量连接然后在 my.cnf 文件中分配。

由于 MyISAM 锁定了表并且所有线程都保留在等待列表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多