我最近得到了建立一些索引的建议,这是我的sql代码
CREATE INDEX my_idx1 ON identdb (name,long1,lat1,date,count);
CREATE INDEX my_idx2 ON identdb (name,long1,lat1,date);
CREATE INDEX my_idx3 ON identdb (long1,lat1,date);
CREATE INDEX my_idx4 ON identdb (long1,lat1);
有700万行,7列,我在本地数据库上这样做。
它已经运行了大约16个小时。我做错了吗?
答案 0 :(得分:2)
可能需要一段时间,虽然16小时似乎过度。执行show processlist
并查看CREATE INDEX
是否仍在运行,或者某些内容是否被阻止。
顺便说一下,你的两个索引是多余的(my_idx2
和my_idx4
)。作为另一个索引的前缀的索引是不必要的,因为较长的索引可以在任何使用较短索引的地方使用。