1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > MYSQL 联表查询 ORDER 效率低?

MYSQL 联表查询 ORDER 效率低?

时间:2019-02-10 03:33:30

相关推荐

MYSQL 联表查询 ORDER 效率低?

今天在处理一个分页时候,发现速度感人,点下一页等了半天。然后查看代码,发现是一个left jion语句。

SELECT DISTINCT ordr.id,ordr.*,cf.nickname FROM order LEFT JOIN fans ON order.openid=fans.openid where order.mid=3 AND fans.mid=3 AND order.ispay="1" AND order.pay_way="alipay" ORDER BY order.paytime DESC,order.id DESC LIMIT 0,20

这条语句执行了2分钟。本来觉得是因为联表查询了多个数据的问题,经过测试,发现是order by排序数据量多的话就相当的慢。

经过百度,发现首先要将无用数据筛掉,筛选出符合条件的数据,减少资源消耗。

于是优化后的语句:

SELECT DISTINCT order.id,order.*,fans.nickname FROM (select * from order where ispay="1" ORDER BY paytime DESC,id DESC LIMIT 0,20) as order LEFT JOIN fans AS cf ON order.openid=fans.openid;

只需要时间: 0.888s

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。