2009-10-06 15 views
12

Me doy cuenta de que la pregunta exacta se ha hecho antes en el desbordamiento de la pila con solo una respuesta vagamente concluyente: link¿MySQL 5.0 indexa valores nulos?

Así que aquí está otra vez.

Tabla A: tiene una columna entera que puede contener nulos, junto con un índice. Consulta:

SELECT * 
FROM table 
WHERE column IS NULL 
LIMIT 10; 

se utilizará un índice o se mysql hacer un escaneo completo de tabla hasta que se haya encontrado 10 entradas?

Respuesta

4

La única forma de saberlo con seguridad en es que su caso específico ejecute "EXPLAIN SELECT" en su consulta.

Realmente depende de la cantidad de NULL en su tabla en comparación con el número total de filas; si las estadísticas de la tabla se han actualizado, etc.

3

Tendría que analizar la consulta. En general, depende del porcentaje relativo de NULLs a los valores. Si la mayoría de las entradas en esa columna entera es NULL, es probable que se salte.

Por otro lado, si solo el 10% (por ejemplo) es NULL, usará (o debería) el índice.

+1

Gracias señor. Solo necesitaba una revisión de esto. Y me gustaría agregar a cualquier persona que visite esta página en el futuro que su respuesta es la mejor. – usumoio

+0

Gracias. Muy contento de que haya sido útil. –