我想要每天的销售商品计数,因此对于该商品我已经创建了查询,但是需要花费大约55.585s,查询是
询问 :
SELECT
td.db_date,
(
select count(*) from order as order where DATE(order.created_on) = td.db_date
)as day_contribute
FROM time_dimension as td
因此,任何人都可以让我知道如何优化此查询并减少执行时间。
您可以将查询修改为加入,例如:
SELECT
td.db_date, count(order.id) as day_contribute
FROM time_dimension as td
LEFT JOIN order ON DATE(order.created_on) = td.db_date
GROUP BY td.db_date;
我不知道您用于表order的主ID键-因此仅使用了“ order.id”。用你的替换它。
这也非常重要-测试td.db_date字段上是否有索引。
还有一件重要的事情-最好避免使用DATE(order.created_on)。因为这意味着每次DB比较日期时都会调用DATE()方法。如果可能-将order.created_on转换为与td.db_date相同的格式。或加入其他领域。那也将增加速度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句