添加全文索引后,MySQL 挂起并且表无法访问

添加全文索引后,MySQL 挂起并且表无法访问

在为包含 30,000 行的表中的一个列添加全文索引后,该表现在无法访问。任何修改、删除、截断或访问它的尝试都会挂起。MySQL 还报告用户连接过多。为什么添加全文索引会导致此问题?如何删除此表?

答案1

修改大型表需要花费一些时间。在将更改应用于生产环境之前,您应该先对其进行测试。

我怀疑这是一张被写入的表。当您开始更改时,它被锁定了。当连接尝试写入它时,它们会等待它解锁。最终,所有可用的连接都已填满,等待表解锁。

如果您不想冒数据损坏的风险,请等待它停止。否则,您可以终止更改,但回滚也可能需要一段时间。如果您停止数据库,则可能会有数据损坏的风险。它可能会恢复,但采取这样的行动是更加不负责任的。

答案2

我将首先停止服务器,然后在该数据库上运行 mysqlcheck(如果无法停止服务器,则备份整个数据库,将其复制到另一台机器并在那里运行检查)。

初始选项是仅检查错误。一旦您找到错误,请使用检查结果的详细信息更新您的帖子,然后我们再处理。

相关内容