gpt4 book ai didi

mysql - MyISAM 表损坏

转载 作者:行者123 更新时间:2023-11-29 05:00:46 30 4
gpt4 key购买 nike

有时我会收到类似“表被标记为已损坏且应修复”之类的错误。该数据库(表)正在使用 MyISAM。最近这种情况不断发生。可能是什么原因?最近我正在执行批量插入

INSERT INTO table (..., ..., ...) VALUES (...), (...), (...) ...

然后它就挂了。或者花了很长时间才完成它似乎卡在我身上。第二天,当我检查表时,它再次被标记为已损坏。当我尝试使用 mysqlcheck -r 时它说所有表都正常,当它到达那个“损坏”的表时它再次卡在那里......

所以,我该怎么做才能防止这种情况发生。以及可能是什么原因。数据库由第三方托管,我该如何调试?

InnoDB 是更可靠的引擎吗?我听说 MyISAM 更快,但其他人说 InnoDB 也可以很快,但需要更多的技巧来优化它。我可以得出结论,即使经过优化,InnoDB 更可靠但整体速度更慢吗?

最佳答案

如果你的表损坏了,你可以使用修复表命令来修复它们:

 REPAIR TABLE table;

如果您在服务器仍在运行时运行 myisamchk(并且插入/选择正在访问表),它可能会破坏您的表。我遇到的大多数损坏问题是在服务器仍在运行时尝试在服务器外部执行操作(复制文件等)时。

InnoDB 对于只读数据库来说速度较慢,因为它具有 MyISAM 遗漏的功能(符合 ACID,行级锁定)。但是,如果您混合进行读取和写入,根据混合情况,InnoDB 可以提供显着的性能改进,因为它不必锁定整个表来进行写入。您也不会遇到腐败问题。

关于mysql - MyISAM 表损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/990780/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com