求教关于sql优化的问题

发布于 2022-09-12 02:02:04 字数 1345 浏览 24 评论 0

问题描述

各位好,情况是这样的,我们有一个订单查询的页面,查询条件除了订单相关内容(比如价格,时间,发货地址)以外,还有产品,用户信息等查询,现在订单表单表数据大概10W左右,出现了查询的卡顿
(订单产品表(order_detail)示一个订单多个产品的存储)

问题出现的环境背景及自己尝试过哪些方法

我这边按照网上一些方法,瓶颈在于排序,如果先把订单表排序再关联其他表,就很快,但是如果加上产品或者用户信息查询就很慢了

相关代码

粘贴代码文本(请勿用截图)
explain SELECT

`o`.`ID`,
`o`.`orderID`,
`u`.`userID`,
`u`.`userName`,
`u`.`telephone`,
`orderInputTime`,
....
....

FROM

`sys_order` `o`

INNER JOIN sys_order_detail d ON d.orderID = o.orderID
INNER JOIN user u ON u.userID = o.userID
INNER JOIN product p ON p.prodID = d.prodID
WHERE

`orderStatus` <> '删除'

AND p.prodName LIKE '%XX产品%'
AND orderSource <> 3
GROUP BY

`o`.`orderID`

ORDER BY

`orderInputTime` DESC

LIMIT 0,
15

你期待的结果是什么?实际看到的错误信息又是什么?

这个是explain截图
TIM图片20200403114448.png
现在想解决的问题是如何处理这种大量数据关联,再排序所造成的查询缓慢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

但可醉心 2022-09-19 02:02:04

就like前模糊查询与<> 不等于这两个,都不走索引,就注定了这条sql不会快到哪里了

離人涙 2022-09-19 02:02:04

搜索了许多资料以后,现在暂时的处理办法是
先group by优化缩小结果集再排序
image.png

这样就快很多了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文