MySQL объясняет отфильтрованный отфильтрованный столбец 4 100 с индексом - PullRequest
6 голосов
/ 10 ноября 2010

Мой запрос:

EXPLAIN EXTENDED SELECT  `artwork`.`id` ,  `artwork`.`added` 
FROM  `artwork` 
ORDER BY  `artwork`.`added` DESC 
LIMIT 0 , 6

Когда я добавил индекс "добавлено", чтобы избежать использования filesort и использования index вместо этого, вывод объяснения шел от

id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE artwork ALL NULL NULL NULL NULL 302 100.00 Using filesort

до

id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE artwork index NULL added 4 NULL 6 5033.33  

, и я обеспокоен тем, что количество фильтруемых данных возрастает примерно до 4100 - я не могу найти в Google, что означает filtered

Ответы [ 2 ]

6 голосов
/ 10 ноября 2010

Эй, на самом деле это хорошие новости. Он показывает, сколько строк ваши ограничения удаляют из результирующего набора. В этом случае это будет ваше заявление LIMIT. См. Руководство :

В столбце filtered указан приблизительный процент строк таблицы. это будет отфильтровано по таблице состояние. То есть rows показывает оценочное количество исследованных строк и rows × filtered / 100 показывает номер строк, которые будут соединены с предыдущие таблицы. Этот столбец отображается, если вы используете EXPLAIN EXTENDED.

3 голосов
/ 10 ноября 2010

Из документов :

filtered

В столбце filtered указан приблизительный процент строк таблицы, которыебудет отфильтровано по условию таблицы.То есть rows показывает приблизительное количество проверенных строк, а rows × filtered / 100 показывает количество строк, которые будут объединены с предыдущими таблицами.Этот столбец отображается, если вы используете EXPLAIN EXTENDED.(Новое в MySQL 5.1.12)

По сути, это соотношение записей, возвращаемых к извлеченным записям.

Его цель - показать, насколько избирательны ваши условия WHERE / ONи что будет преимуществом создания индекса для них.

Обратите внимание, что это поле не имеет большого смысла для запросов с LIMIT, так как оно всегда рассчитывается без учета условия LIMIT, которое rows рассчитывается с учетом последнего.

...