![添加全文索引后,MySQL 挂起并且表无法访问](https://linux22.com/image/524644/%E6%B7%BB%E5%8A%A0%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95%E5%90%8E%EF%BC%8CMySQL%20%E6%8C%82%E8%B5%B7%E5%B9%B6%E4%B8%94%E8%A1%A8%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE.png)
在为包含 30,000 行的表中的一个列添加全文索引后,该表现在无法访问。任何修改、删除、截断或访问它的尝试都会挂起。MySQL 还报告用户连接过多。为什么添加全文索引会导致此问题?如何删除此表?
答案1
修改大型表需要花费一些时间。在将更改应用于生产环境之前,您应该先对其进行测试。
我怀疑这是一张被写入的表。当您开始更改时,它被锁定了。当连接尝试写入它时,它们会等待它解锁。最终,所有可用的连接都已填满,等待表解锁。
如果您不想冒数据损坏的风险,请等待它停止。否则,您可以终止更改,但回滚也可能需要一段时间。如果您停止数据库,则可能会有数据损坏的风险。它可能会恢复,但采取这样的行动是更加不负责任的。
答案2
我将首先停止服务器,然后在该数据库上运行 mysqlcheck(如果无法停止服务器,则备份整个数据库,将其复制到另一台机器并在那里运行检查)。
初始选项是仅检查错误。一旦您找到错误,请使用检查结果的详细信息更新您的帖子,然后我们再处理。