在简单的WHERE条件下,MySQL EXPLAIN行的数量要高得多

时间:2013-07-02 14:01:21

标签: mysql indexing explain

我现在一直在进行优化工作,但我真的无法解决这个问题。

查询:

SELECT `field` FROM `table` WHERE `column_id` = 12341

索引:

ALTER TABLE `table`
ADD INDEX `column_id` (`column_id`);

现在查询(EXPLAIN SELECT field FROM table WHERE column_id = 12341)的解释显示我有50.000行。 但实际上,只有20.000行,其中column_id = 12341。

  • EXPLAIN显示我正在使用column_id索引
  • 但是,它显示我有'50 .000'行
  • 实际上它只有20.000行
  • 我知道EXPLAIN行是一个估计值,但这是一个很容易的索引..
  • 这是一个InnoDB
  • 我尝试过优化表/分析表..

现在这可能很烦人,因为MySQL使用行数估计来选择正确的索引,并且最终可能会因为错误的估计而错过索引。

是否有一些我不知道的索引技巧?

1 个答案:

答案 0 :(得分:0)

countexplain进行比较并不是真正有效,因为(如已经链接的答案中所述)explain显示已处理的行数,而不是结果集中预期的数量