我的查询是这样的:如何在其优化这个查询一些子查询
SELECT date_format(created_at, '%Y-%m-%d') AS the_date,
COUNT(s.id) AS total,
(SELECT COUNT(ks.id) FROM kc_shares ks WHERE site = 'facebook' AND date_format(created_at, '%Y-%m-%d') = the_date) AS total_facebook,
(SELECT COUNT(ks.id) FROM kc_shares ks WHERE site = 'twitter' AND date_format(created_at, '%Y-%m-%d') = the_date) AS total_twitter
FROM `kc_shares` s
GROUP BY `the_date`
我想是的日常股总的规格数量,总股本在Facebook(因此网站='脸谱')和总分享到微博。这就是为什么我需要GROUP BY
。
当它有几千行时,没有问题。但是这张表目前有近20万行,查询速度非常慢,大约需要20-30秒,我猜更多。
我已经尝试添加索引到网站和created_at字段,但无济于事。
太感谢你加入反对他们,而这样做子查询为每个返回的行
这个工程!谢谢! – Henson 2013-03-18 12:24:58
没问题。乐意效劳! – Arion 2013-03-18 13:11:23