MySQL select count(distinct id)非常慢

时间:2012-10-23 17:01:11

标签: mysql select query-optimization distinct-values

我有一张MyISAM表,大约有7000万条记录。当我select count(distinct id)时,获取查询结果大约需要80秒。这个表是一个非规范化的表,这就是为什么我需要获取id的唯一计数,它必须动态完成。如果我添加一个where子句,取决于我给出的范围,它需要4到90秒之间的较短时间。

我想知道是否有任何方法可以优化它以提高查询速度。

1 个答案:

答案 0 :(得分:0)

尝试SELECT SQL_CALC_FOUND_ROWS DISTINCT(id) FROM ...,然后执行查询SELECT FOUND_ROWS() AS Total以获取结果。