使用值列表中的子查询优化mysql查询

时间:2015-07-06 17:30:40

标签: mysql sql optimization query-optimization

我正在尝试优化对数据库的查询。我有以下查询:

select date, (
    select count(user_id) 
    from myTable 
    where logdate = date
) as value 
from myTable;

据我所知,第二个值是有效计算的。但是,有没有在MySQL中优化这种查询的常见做法?

2 个答案:

答案 0 :(得分:1)

我相信您可以避免编写子查询并使用聚合执行相同的查询,这可能会运行得更快:

SELECT date, COUNT(user_id) AS numRecords
FROM myTable
GROUP BY date;

这是关于聚合函数的reference

答案 1 :(得分:0)

您不必将组功能放在单独的选择中。只是做

select date, count(user_id) from myTable group by date;

没有艰难和快速。在这个查询中,只有一个选择比2更有效。但这里有some tips for beginners优化查询。