Как описано здесь в документации по MySQL :
Отфильтрованный столбец показывает приблизительный процент строк таблицы, которые будут отфильтрованы по условию таблицы. То есть, строки показывают приблизительное количество проверенных строк, а строки × отфильтрованные / 100 показывают количество строк, которые будут объединены с предыдущими таблицами. До MySQL 5.7.3 этот столбец отображается, если вы используете EXPLAIN EXTENDED. Начиная с MySQL 5.7.3 расширенный вывод включен по умолчанию, и ключевое слово EXTENDED не требуется.
Я до сих пор не понимаю. Что означает «фильтрованный» здесь? Какую информацию мы можем получить из этой колонки?
Например, когда я начинаю запрашивать, некоторые запросы показывают 100, а другие показывают 18 или меньше 100.
+-------------+-------+--------+---------+---------+------+----------+
| select_type | table | type | key | key_len | rows | filtered |
+-------------+-------+--------+---------+---------+------+----------+
| PRIMARY | a | range | search | 4 | 174 | 18.00 | <--
| PRIMARY | b | eq_ref | PRIMARY | 4 | 1 | 100.00 |
| PRIMARY | c | ALL | PRIMARY | 4 | 1 | 100.00 |
Какой главный пункт мы можем сделать из этого значения?
Это говорит о том, что колонка отфильтрована только на 18%? Или, чем ниже оценка, тем лучше индекс / запрос?
Я использую MySQL 5.7
type
иextra
(что является искусством само по себе); Вы могли бы жить безfiltered
, но не безtype
.