EXPLAIN的查询的过滤列在MySQL中意味着什么?

Chr*_*nry 4 mysql

mysql> EXPLAIN EXTENDED SELECT * FROM table WHERE column = 1 LIMIT 10;
+----+-------------+----------+------+---------------+--------------+---------+-------+--------+----------+-------+
| id | select_type | table    | type | possible_keys | key          | key_len | ref   | rows   | filtered | Extra |
+----+-------------+----------+------+---------------+--------------+---------+-------+--------+----------+-------+
|  1 | SIMPLE      | table    | ref  | column        | column       | 1       | const | 341878 |   100.00 |       |
+----+-------------+----------+------+---------------+--------------+---------+-------+--------+----------+-------+
1 row in set, 1 warning (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

过滤后的列的含义是什么,数字应该高还是低?是的,我已经阅读了文档,但我不太明白这个数字表示什么或者认为哪些值是可取的.

the*_*oid 5

filtered列是估计的百分比,指定将与上一个表连接的行数.在你的情况下,它是100%,即所有行.

rows,因为你知道大概,是查询检查的行数的估计,因此rows x filtered / 100将是不得不作出(左行数将表条件后)加入的数量.

有关其他信息,请参阅MySQL Optimizer中的新增功能 - MySQL查询优化器中的新功能(幻灯片10).

编辑:

有一个在附录高性能的MySQL(第二版),这表明本书优化目前使用这个估计值(filtered仅适用于)ALL,index,rangeindex_merge访问方法.