select * from dx_gd_goods where g_label >= 100101000 and g_label<100102000 order by g_likenum DESC limit 30上面的SQL语句执行要2秒。太慢了。我如果变成这样,但是实际需求是一定要排序的。
select * from dx_gd_goods where g_label >= 100101000 and g_label<100102000 limit 30这样做后,程序只需要0.16秒就可以返回我怎样做才能到排序后,执行的时间又短呢。
select * from dx_gd_goods where g_label >= 100101000 and g_label<100102000 limit 30这样做后,程序只需要0.16秒就可以返回我怎样做才能到排序后,执行的时间又短呢。
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
他们二个分别一个索引的
我有这样的语句三条,
select * from dx_gd_goods where g_label >= 100101000 and g_label<100102000 order by g_likenum DESC limit 30select * from dx_gd_goods where g_label >= 100101000 and g_label<100102000 order by g_time DESC limit 30select * from dx_gd_goods where g_label >= 100101000 and g_label<100102000 order by g_hot DESC limit 30
我是不是要建3个联合索引
g_label ,g_hot
g_label ,g_time
g_label ,g_likenum
我可不可以这样。
g_label ,g_hot ,g_time ,g_likenum 我知道本来应该我自己实践的,但是因为建索引的时候太长了,而且我一建数据库就慢,我同事他们那就不流畅,会影响到他们。所以不好实践得,所以只有问问大哥你了。
这个样子,你建立分区吧通过g_label,这样我想效果会比较明显,也不用老是建立那么多索引了(如果建立索引依然会有效果,不过这要综合分析你的表使用情况了)
好像是分不了啦。只能按一种方式分。