暂无图片
这个SQL如何优化
我来答
分享
Switchblade
2023-09-13
这个SQL如何优化

有趣的SQL
```SELECT p.ProductUrlp.ProductIDp.ProductSKUp.ProductName_enp.ProductName_arp.ProductPricep.SalePricep.ProductLivep.ProductLocationp.isSalep.isNewp.isHotp.isRecommendp.AddedByp.ProductStockp.ProductTypeus.ipcn.name as country_name, group_concat(distinct cp.category_id) as cpProductCatID, group_concat(distinct bp.brand_id) as bpProductBrndID
FROM products as p
LEFT JOIN brand_products bp ON bp.product_id=p.ProductID
LEFT JOIN category_products cp ON cp.product_id=p.ProductID
LEFT JOIN product_variation as pv ON pv.productSKU=p.productSKU
LEFT JOIN users as us ON us.id=p.AddedBy
LEFT JOIN countries as cn ON cn.id = us.country_id
WHERE   (
p.ProductLive = ‘on’
AND p.isHot = ‘on’
AND p.deleted = 0
 )
AND us.active = 1
AND  p.ProductLive  LIKE ‘%on%’ ESCAPE ‘!’ 
GROUP BY ProductID
ORDER BY p.vendorPromotionOrder = 0, (CASE WHEN p.vendorPromotionOrder > 0 and us.vendorPromotion > 0 THEN p.vendorPromotionOrder END) ASC, (CASE WHEN p.rotation_order > 0 and 1 > 0  THEN p.rotation_order END) ASC, (CASE 
        WHEN p.ProductStock > 0 and p.ProductType <> ‘custompro’ THEN 2
        WHEN p.ProductType = ‘custompro’ THEN 1
        WHEN p.ProductStock < 1 THEN 0
            ELSE 4
        END) DESC, p.ProductStock DESC
 LIMIT 20

复制
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
笑看风云

贴一下sql执行计划

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Mysql关于group by添加索引的疑问
回答 3
已采纳
所谓最好的三星索引1、过滤性好,能过滤掉较多的行2、索引覆盖3、SQL的排序也刚好是索引的排序满足以上三点,就是最好的三星索引了。但从你的SQL来看。1与3肯定不能同时满足了。要么满足1,2,要么满足
SQL 优化
回答 3
已采纳
你这个逻辑太复杂,我反复拆解,大致得出结论:假设closeddate必然小于currentdate,且closeddate一旦录入了不会变化。那么只要closeddate&lt;trunc(curre
千万级的大数据量如何快速查询
回答 2
已采纳
这个还得看具体SQL和你的查询需求。如果千万级数据量的表访问少量数据,过滤条件尽量按索引。如果需要查询大量数据,可以在资源允许的情况下对大表启用并行。如果查询条件比较规律,查询时效性要求不高,可以考虑
索引失效
回答 2
解决了吗?
Mysql SQL索引优化
回答 7
首先createdate与updatedate谁的区分度更好。谁的区分度更好就决定了,这两个字段哪个排在前面。然后再看state与type这两个区分度好不好。如果也有较好的区分度,那就再往前放。如果区
用表用,和表的别名,执行计划有什么区别,麻烦大佬给看看
回答 11
只能给些建议,谨供参考:两表都把accountid和cardno设置为组合索引。查询时ona.accountidb.accountidanda.cardnob.cardno,看效率是否有提升。SALE
SQL优化求助!!!
回答 7
已采纳
优化建议:&nbsp;&nbsp;&nbsp;更换SSD存储;&nbsp;fixcontrol&nbsp;308224461;&nbsp;开并行(如果不更换存储,&nbsp;意义不大,只是用来使用更多
GBase8a慢SQL优化
回答 1
与现场沟通怀疑是因为左侧关联字段ct.GROUPID加了函数造成索引失效,修改之后执行时间仍然在半小时以上,打开trace日志查看gnode层日志可见join返回行数远远大于两张源表的数据量,因此怀疑
SQL优化-为何执行计划走组合索引
回答 6
题主的问题是为何没有走IDXAUORDERN3组合索引。那还是着重研究这个问题。如果这个表存了10年的记录,那么2324日两天的记录相当于10年记录的2/(10X365).可以说这两天记录占总记录比例
优化大神看下 recursive calls问题吧 ,谢谢
回答 3
已采纳
你的sharedpool多大啊?当SharedPool过小,datadictionarycache也会相应的过小,没有足够的空间存储ORACLE的系统数据字典信息时,会发生Recursivecalls