大的mysql数据库统计着不同的性能

时间:2012-09-19 11:15:29

标签: mysql count distinct bigtable

HELO

我有一个很大的问题,我有一个大约50M行的表。在这张表中,我有3列:位置,人物代码和日期。它看起来像这样:

date         person    location

2012-04-07   837592      0
2012-04-08   892857      6
2012-04-06   726474      1
2012-04-03   204857      4
2012-04-08   516485      9
2012-04-07   405867      0

所以一个人可以在同一天的不同地点或不同日期的同一地点。

现在我的问题是我需要一个类似的查询:

SELECT COUNT (DISTINCT person) FROM my_table WHERE location = '0';

所以基本上我必须计算在不同时间在一个地方的不同的光子。 如果我以前面描述的方式执行此操作,则查询大约需要20分钟。

所以我问是否有更快的方法呢?

2 个答案:

答案 0 :(得分:0)

试试这个::

SELECT person, COUNT (*) FROM my_table WHERE location = '0' group by person;

这将提高性能,接下来你可以做索引使用的列。

答案 1 :(得分:0)

试试这个

SELECT COUNT (*) FROM my_table WHERE location = '0' GROUP BY person;