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:
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:Codice PHP:EXPLAIN SELECT uid, attivazione
FROM utenti
WHERE id = '1'
AND attivazione = '0'
Impossible WHERE noticed after reading const table...
Mentre, se facessi la stessa query sull'indice creato "NICK"
anche qualora l'utente cercato non esistesse ho un explain ben descritta:Codice PHP:EXPLAIN SELECT uid, attivazione
FROM utenti
WHERE nick = 'Bukowski'
AND attivazione = '0'
C'è qualche problema secondo voi o è tutto normale?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
Grazie

Rispondi quotando