2010-11-10 15 views
6

Mi Pregunta:MySQL explicar la columna filtrada saltando 4100 con el índice

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

Cuando añadí un índice en "añadido" para evitar el uso de filesort y utilizar index lugar la salida del explicada pasó de

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 

a

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 

y estoy preocupado por la subida de una filtrada pproximently 4,100 - No puedo encontrar en Google lo que filtered significa

Respuesta

6

Oye, en realidad son buenas noticias. Muestra cuántas filas están eliminando sus limitaciones del conjunto de resultados. En este caso, esa sería su declaración LIMIT. See the manual:

La columna filtered indica un porcentaje estimado de filas de la tabla que se pueden filtrar por la mesa condición. Es decir, rows muestra el número estimado de filas examinadas y rows × filtered/100 muestra el número de las filas que se unirán con tablas anteriores. Esta columna se muestra si usa EXPLAIN EXTENDED.

+0

Bien, entonces usted dice que es bueno, pero todavía no entiendo muy bien lo que significa ... – Webnet

+1

@Webnet Significa que, sin su cláusula 'LIMIT', las filas' filtradas'% __additional__ serían devueltas en lugar. Intenta eliminar tu cláusula 'LIMIT' y verás que el número filtrado cae a 0 y que las 'filas' se convierten en el número total de filas en la tabla. –

3

Desde el docs:

filtered

La columna filtered indica un porcentaje estimado de filas de la tabla que se filtra por la condición tabla. Es decir, rows muestra el número estimado de filas examinadas y rows × filtered/100 muestra el número de filas que se unirán a las tablas anteriores. Esta columna se muestra si usa EXPLAIN EXTENDED. (Nuevo en MySQL 5.1.12)

Básicamente, es la proporción de registros devueltos a los registros obtenidos.

Su objetivo es mostrar qué tan selectivas son sus condiciones WHERE/ON y cuál sería la ventaja de crear un índice sobre ellas.

Tenga en cuenta que este campo tiene poco sentido para las consultas con LIMIT, ya que siempre se calcula sin tener en cuenta la cláusula LIMIT, que rows se calcula con respecto a esta última.

Cuestiones relacionadas