Eu configurei minha tabela com um índice apenas em done_status (done_status = INT):
Quando eu uso:
EXPLAIN SELECT * FROM reminder WHERE done_status=2
Eu recebo de volta:
id select_type tipo de tabela possible_keys key key_len ref linhas Extra 1 lembrete SIMPLES TUDO done_status NULL NULL NULL 5 Usando where
Mas quando eu emito este comando:
EXPLAIN SELECT * FROM reminder WHERE done_status=1
Eu recebo o seguinte retornado:
id select_type tipo de tabela possible_keys key key_len ref linhas Extra 1 lembrete SIM ref referência done_status done_status 4 const 2
O EXPLAIN
me mostra que ele usa 5 linhas, a segunda vez 2 linhas.
Eu não acho que o índice é usado, se eu entendi direito na primeira vez, ele deve me dar três linhas. O que eu faço de errado?
SHOW INDEX FROM reminder
:
Tabela Nome-chave não exclusivo Seq_in_index Nome_da_coluna Cardinalidade do agrupamento Sub_parta Nulo compactado Índice_tipo Comentário Index_comment lembrete 1 done_status 1 done_status A 5 NULL NULL BTREE
explicar estendido:
id select_type tipo de tabela possible_keys key key_len ref linhas filtradas Extra 1 lembrete SIM ref referência done_status done_status 4 const 2 100,00
show warnings
não mostrou nada de interesse.