MySQL需要多长时间来构建一个包含30,000,000个长度为256的字符串条目的表的索引?目前看起来需要花费数小时,我不知道应该等待多久才能得出结论,即MySQL在构建索引时是否失败。
您可以在mysql控制台中运行SHOW PROCESSLIST \G
来查看其状态。我几个小时之前遇到了类似的问题,但是我的表要小得多。
这里是一份线程状态列表,您一定会需要。等待了一个小时后,我意识到ALTER TABLE CREATE INDEX
处于Locked
状态,我需要重新启动mysqld并再次运行该语句。那次我花了15分钟建立索引。
顺便说一下,我建议从mysql控制台运行索引创建,GUI工具可能会给过程添加一些杂音。
这可能需要几个小时。这完全取决于机器规格、负载等等。要查看是否失败,请检查类似 top
的内容或观察您的硬盘 - 如果它们正在疯狂运转,那么它仍在索引。
根据您的操作系统,您可以检查磁盘活动(即它是否读取/写入DB文件)以确定它是否失败。