Mysql sql语句优化问题

楚天i 2017-12-26 09:46:32
sql语句:
SELECT
o.order_id,
SUM(o.discountAmount) AS discountAmount,
s.store_name,
o.create_time AS create_time,
o.cashPay AS cashAmount,
o.cardPay AS cardAmount,
m. NAME AS realname,
o.sn,
SUM(o.order_amount) AS order_amount,
o.aliPay AS aliPay,
o.wechatPay AS wechatPay,
o.payeasePay AS payeasePay
FROM
es_daycount_order o
LEFT JOIN es_daycount_order_items i ON i.order_id = o.order_id
LEFT JOIN es_goods AS g ON i.goods_id = g.goods_id
LEFT JOIN es_member AS m ON o.operator_id = m.member_id
LEFT JOIN es_store AS s ON m.store_id = s.store_id
WHERE
o.store_id IS NOT NULL
AND o.store_id IN (190, 192)
AND o.create_time > 1483200000
AND o.create_time < 1513958399
AND (
o.pay_status = 2
OR o.pay_status = 3
)
AND o.sn NOT LIKE '%SO10%'
AND o.sn NOT LIKE '%SO20%'
GROUP BY
i.order_id
ORDER BY
create_time DESC;

explain结果


现在查询时间是8秒左右。请问怎么优化
...全文
357 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
鞠骞的博客 2018-01-02
  • 打赏
  • 举报
回复
我又来瞎说了,你这种语句要看什么场景了: 1. 如果是高并发,高访问量的互联网应用,写这样的SQL,就该好好检讨一下了, 2. 如果是报表的话,8秒的时间,是能够接受的, 说了这么多,我给点建议吧: 1. 如果是互联网应用, 第一:通过执行计划,算好区分度来添加合适的索引。 第二: 把应用服务化吧,给到数据库中的都是一些简单的查询,(这也算是业务上的SQL优化了) 2. 如果是报表的话,可以放入大数据中计算,如果没有大数据组呢,也没关系,至少放在丛库(报表库)吧,别把主库压垮了, 思考: 想想还有多少这样的SQL,也像上面的步骤解决下吧。 最后: 个人微信公众号《andyqian》 更新了不少MySQL相关的文章,希望对你有所帮助!
ZHOU西口 2018-01-02
  • 打赏
  • 举报
回复
这个还是如楼上那位所讲,根据你的实际业务场景去考虑。 对这种更新频率高,数据量大的表,在开始建表的时候就该考虑是否拆分,当然现在也可以拆分。
楚天i 2018-01-02
  • 打赏
  • 举报
回复
引用 1 楼 splendid_java 的回复:
1、考虑表的数据量 2、考虑表的字段的多少 3、多表关联,准备字段索引
嗯~~~,是考虑了,但是考虑不出来
楚天i 2018-01-02
  • 打赏
  • 举报
回复
引用 2 楼 u010695794 的回复:
我又来瞎说了,你这种语句要看什么场景了: 1. 如果是高并发,高访问量的互联网应用,写这样的SQL,就该好好检讨一下了, 2. 如果是报表的话,8秒的时间,是能够接受的, 说了这么多,我给点建议吧: 1. 如果是互联网应用, 第一:通过执行计划,算好区分度来添加合适的索引。 第二: 把应用服务化吧,给到数据库中的都是一些简单的查询,(这也算是业务上的SQL优化了) 2. 如果是报表的话,可以放入大数据中计算,如果没有大数据组呢,也没关系,至少放在丛库(报表库)吧,别把主库压垮了, 思考: 想想还有多少这样的SQL,也像上面的步骤解决下吧。 最后: 个人微信公众号《andyqian》 更新了不少MySQL相关的文章,希望对你有所帮助!
感谢,这个确实是报表的
ZHOU西口 2018-01-01
  • 打赏
  • 举报
回复
1、考虑表的数据量 2、考虑表的字段的多少 3、多表关联,准备字段索引

56,677

社区成员

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

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