【发布时间】:2012-10-13 16:34:04
【问题描述】:
我有一个包含大约 7000 万条记录的 MyISAM 表。当我执行select count(distinct id) 时,大约需要 80 秒才能获得查询结果。该表是非规范化表,这就是为什么我需要获取 id 的唯一计数,并且必须动态完成。如果我添加一个 where 子句,根据我给出的范围,它需要更短的时间,在 4 - 90 秒之间。
我想知道是否有任何方法可以优化它以提高查询速度。
【问题讨论】:
-
id列上是否有索引? -
你能显示查询吗?你能用
explain select......吗?结构呢? PK、FK?索引?,索引的类型?? -
是的,我在 id 字段上有索引,在 where 子句中有字段索引,这就是为什么当我使用“where”取决于范围时,查询会更快。 | 1 |简单 | tmp_rep_1018 |索引 |空 |西德 | 4 |空 | 79146975 |使用索引 |
标签: mysql select query-optimization distinct-values