如何最小化此sql查询
我希望尽量减少查询执行时间。检索数据花费的时间太长。您可以像这样使用如何最小化此sql查询,sql,optimization,Sql,Optimization,我希望尽量减少查询执行时间。检索数据花费的时间太长。您可以像这样使用CASE并删除连接的使用 SELECT sale1, sale2 , sale3 FROM ( SELECT Sum(todayssale) AS sale1 FROM sale_details USE index (index_sale) WHERE productid='242431'
CASE
并删除连接的使用
SELECT sale1,
sale2 ,
sale3
FROM (
SELECT Sum(todayssale) AS sale1
FROM sale_details USE index (index_sale)
WHERE productid='242431'
AND exacttime >= '2015-06-29 14:29:36' ) a
JOIN
(
SELECT sum(todayssale) AS sale2
FROM sale_details USE index (index_sale)
WHERE productid='242431'
AND exacttime >= '2015-06-23 14:29:36' ) b
JOIN
(
SELECT sum(todayssale) AS sale3
FROM sale_details USE index (index_sale)
WHERE productid='242431'
AND date>='2015-06-29' ) c
试着跟随
SELECT
sum(CASE WHEN exacttime >= '2015-06-29 14:29:36' THEN todayssale ELSE 0 END) as sale1
sum(CASE WHEN exacttime >= '2015-06-23 14:29:36' THEN todayssale ELSE 0 END) as sale2
sum(CASE WHEN date>='2015-06-29' THEN todayssale ELSE 0 END) as sale3
FROM sale_details USE index (index_sale)
WHERE productid='242431'
AND (exacttime >= '2015-06-23 14:29:36' OR date>='2015-06-29')
您正在使用哪个rdbms?删除连接,更重要的是还删除子查询+1.
SELECT
(SELECT Sum(todayssale) FROM sale_details WHERE productid='242431' AND exacttime >= '2015-06-29 14:29:36') as sale1,
(SELECT Sum(todayssale) FROM sale_details WHERE productid='242431' AND exacttime >= '2015-06-23 14:29:36') as sale2 ,
(SELECT Sum(todayssale) FROM sale_details WHERE productid='242431' AND date >= '2015-06-29') as sale3