Mysql SELECT的EXPLAIN EXTENDED中'filtered'列下的值是什么意思

时间:2011-12-29 11:07:14

标签: mysql

当EXPLAIN EXTENDED中的已过滤列显示100%时,这对我们意味着什么。

以下两种情况有什么区别......?

  1. 过滤=第100列的查询1中的100%
  2. 过滤=在第Y列的查询2中为10%
  3. EXPLAIN EXTENDED ....中过滤列的最佳值是什么?

    提前致谢

1 个答案:

答案 0 :(得分:2)

MySQL manual

中描述了filtered
  

过滤后的列表示表行的估计百分比   将按表条件过滤。也就是说,行显示了   检查的行数估计和行×过滤/ 100表示   将与以前的表连接的行数。这一栏   如果您使用EXPLAIN EXTENDED,则会显示。 (MySQL 5.1.12中的新功能)

拥有100%意味着此表中的大多数/所有行都会被查询中的条件过滤掉。在某种意义上,更高的值是“更好”,因为这意味着执行者不必从表中读取尽可能多的数据。