我有一张MyISAM表,大约有7000万条记录。当我select count(distinct id)
时,获取查询结果大约需要80秒。这个表是一个非规范化的表,这就是为什么我需要获取id的唯一计数,它必须动态完成。如果我添加一个where子句,取决于我给出的范围,它需要4到90秒之间的较短时间。
我想知道是否有任何方法可以优化它以提高查询速度。
答案 0 :(得分:0)
尝试SELECT SQL_CALC_FOUND_ROWS DISTINCT(id) FROM ...
,然后执行查询SELECT FOUND_ROWS() AS Total
以获取结果。