Ho impostato la mia tabella con un indice solo su done_status (done_status = INT):
Quando uso:
EXPLAIN SELECT * FROM reminder WHERE done_status=2
Ricevo questo:
id select_type tipo di tabella chiave possible_keys key_len ref righe Extra 1 SEMPLICE promemoria TUTTO done_status NULL NULL NULL 5 Utilizzo di where
Ma quando emetto questo comando:
EXPLAIN SELECT * FROM reminder WHERE done_status=1
Ricevo quanto segue:
id select_type tipo di tabella chiave possible_keys key_len ref righe Extra 1 SEMPLICE promemoria ref done_status done_status 4 const 2
Gli EXPLAIN
spettacoli me che utilizza 5 righe, la seconda volta 2 file.
Non penso che l'indice sia usato, se l'ho capito bene la prima volta dovrebbe darmi 3 righe. Cosa faccio di sbagliato?
SHOW INDEX FROM reminder
:
Tabella Non_unique Nome_ chiave Seq_in_index Nome_colonna Fascicolazione Cardinalità Sotto_parte Confezionato Null Index_type Comment Index_comment promemoria 1 done_status 1 done_status A 5 NULL NULL BTREE
spiegare esteso:
id select_type tabella tipo possible_keys chiave key_len ref righe filtrate Extra 1 SEMPLICE promemoria ref done_status done_status 4 const 2 100,00
show warnings
non ha mostrato nulla di interessante.