2009-10-06 2 views
12

Mi rendo conto che la domanda esatta è stata posta prima su stack overflow con solo una risposta vagamente conclusiva: linkMySQL 5.0 indice valori nulli?

Quindi eccolo di nuovo.

Tabella A: ha una colonna intera che è annullabile, insieme a un indice. Query:

SELECT * 
FROM table 
WHERE column IS NULL 
LIMIT 10; 

verrà utilizzato un indice, o sarà mysql fare una scansione completa della tabella fino a quando non ha trovato 10 voci?

risposta

4

L'unico modo per sapere con certezza in il caso specifico è eseguire "EXPLAIN SELECT" sulla query.

In realtà dipende dal numero di NULL nella tabella rispetto al numero totale di righe; se le statistiche della tabella sono state aggiornate, ecc ...

3

Dovresti analizzare la query. In generale, dipende dalla percentuale relativa di NULLs ai valori. Se la maggioranza delle voci in quella colonna intera è NULL, probabilmente la salterà.

D'altra parte, se solo il 10% (ad esempio) è NULL, sarà (o dovrebbe) utilizzare l'indice.

+1

Grazie signore. Ho solo bisogno di una recensione di questo. E vorrei aggiungere per chiunque arrivi in ​​questa pagina in futuro che la tua risposta sia la migliore. – usumoio

+0

Grazie. Molto felice che sia stato utile. –