查询很慢

zhuhao19851021 2015-06-07 10:47:44
SELECT a.`order_id` , a.`delivery_date` , a.`buyer_name` , a.`order_status` , a.`account` , a.`delivery_warehouse`
FROM `Sale_Order` a
LEFT JOIN `Sale_Order_de` b ON a.`order_id` = b.`order_id`

GROUP BY a.`order_id`
ORDER BY find_in_set( a.`order_status` , '4,1,5,6,2,0,7' )

以上查询很慢,需要3-5秒,为什么用left join因为我还要有筛选条件的,现在不加条件都超慢

explain结果:

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE a ALL NULL NULL NULL NULL 38472 Using temporary; Using filesort
1 SIMPLE b ref OrderId,order_id,order_id_2,order_id_3,order_id_4,order_id_5,order_id_6 OrderId 152 demo.a.order_id 1 Using index

索引我都加了的,
find_in_set( a.`order_status` , '4,1,5,6,2,0,7' ) 这个有没有另的办法?我只想4,1排前面就行了
...全文
141 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuhao19851021 2015-06-11
  • 打赏
  • 举报
回复
find_in_set( a.`order_status` , '4,1,5,6,2,0,7' ) 是这个影响速度
zhuhao19851021 2015-06-11
  • 打赏
  • 举报
回复
请问怎么优化啊???
mickey302 2015-06-08
  • 打赏
  • 举报
回复
是不是应该加(order_id,order_status)的多列索引,再用子查询的延迟关联会比较快

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧