Si consideri il seguente due spiega:Nessun indice su! =?
EXPLAIN SELECT * FROM sales WHERE title != 'The'
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE sales ALL title NULL NULL NULL 41707 Using where
E -
EXPLAIN SELECT * FROM sales WHERE title = 'The'
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE sales ref title title 767 const 1 Using where
Perché la query !=
ha una chiave NULL
? Perché non usa title
? Che cosa causa un'istruzione =
per poter utilizzare un indice ma non uno !=
?
elaborare tale - selezionare ogni riga in cui il titolo non è "The" restituirà comunque quasi tutte le righe nella tabella, quindi non ha senso utilizzare un indice per questa query. (Dato che dovrai eseguire la scansione dell'intera tabella per restituire tutte quelle righe.) – duskwuff