Salve a tutti, stavo facendo un pò di ottimizzazione delle mie query controllando con l'explain che tutte usino gli indici correttamente, quando mi sono imbattuto in qualcosa di strano.
Ho una tabella utenti fatta piu o meno cosi:
ID, NICK, ATTIVAZIONE
id è primario e nick è un indice.
Ora, se faccio una query per vedere se un tale utente è attivo oppure no:
Codice PHP:
EXPLAIN SELECT uid, attivazione
FROM utenti
WHERE id = '1'
AND attivazione = '0'
Poniamo il caso che non trova nulla perchè l'utente ancora non esiste, il risultato dell'explain è tutto NULL e negli extra ho questo messaggio:
Impossible WHERE noticed after reading const table...
Mentre, se facessi la stessa query sull'indice creato "NICK"
Codice PHP:
EXPLAIN SELECT uid, attivazione
FROM utenti
WHERE nick = 'Bukowski'
AND attivazione = '0'
anche qualora l'utente cercato non esistesse ho un explain ben descritta:
Codice PHP:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE utenti ref attivazione,nick nick 22 const 1 Using where
C'è qualche problema secondo voi o è tutto normale?
Grazie