【发布时间】:2014-10-08 16:06:49
【问题描述】:
我一直在尝试在具有 100K 行的 varchar(20) 列上创建索引,到目前为止它已经运行了 30 分钟。在具有 16GB 内存和 SSD 驱动器的 8 核 i7 处理器上,我只是不明白为什么要花这么长时间。
有什么想法吗?我对 MySQL 有点陌生,但这只是一个相对较小的表上的基本 vanilla 索引。同一张表上的另一个索引只用了几秒钟就生成了。
如何在 MySQL 中调试这种东西?
【问题讨论】:
-
什么样的索引,'唯一'?数据的可变性如何?如果不是唯一索引并且许多值相同,则可能需要一段时间。实际上,如果索引不是很有选择性,那么它可能不值得拥有。其他要检查的事项:磁盘和可用空间的碎片程度。
-
正常的非唯一索引,但很少有重复。磁盘是新格式化的,因为这是在盒子上安装的新 LAMP。
-
互联网搜索:'mysql 索引创建需要很长时间'返回一些有趣的链接。例如:adding an index is very slow...
-
我做到了,但这些人都在谈论百万行。我的 100K 行表应该在几分钟内完成。现在已经快一个小时了,还在运行......