小编Tot*_*oto的帖子

慢SQL查询,如何提高此查询速度?

我有一个表(call_history)和一个电话呼叫列表报告,caller_id是呼叫者,start_date(DATETIME)是呼叫日期.我需要制作一份报告,说明每天有多少人第一次打电话.例如:

2013-01-01 - 100
2013-01-02 - 80
2013-01-03 - 90
Run Code Online (Sandbox Code Playgroud)

我有这个完美的查询,但它很慢.start_date和caller_id列都有索引; 是否有另一种方法来获取此信息以加快进程?

这是查询:

SELECT SUBSTR(c1.start_date,1,10), COUNT(DISTINCT caller_id)
FROM call_history c1
WHERE NOT EXISTS
 (SELECT id
 FROM call_history c2
 WHERE SUBSTR(c2.start_date,1,10) < SUBSTR(c1.start_date,1,10) 
   AND c2.caller_id=c1.caller_id)
GROUP BY SUBSTR(start_date,1,10)
ORDER BY  SUBSTR(start_date,1,10) desc
Run Code Online (Sandbox Code Playgroud)

mysql sql mysqli

1
推荐指数
1
解决办法
511
查看次数

标签 统计

mysql ×1

mysqli ×1

sql ×1