He configurado mi tabla con un índice solo en done_status (done_status = INT):
Cuando uso:
EXPLAIN SELECT * FROM reminder WHERE done_status=2
Me devuelve esto:
id select_type tipo de tabla possible_keys key key_len ref filas Extra 1 Recordatorio SIMPLE TODO done_status NULL NULL NULL 5 Uso de where
Pero cuando publico este comando:
EXPLAIN SELECT * FROM reminder WHERE done_status=1
Me devuelve lo siguiente:
id select_type tipo de tabla possible_keys key key_len ref filas Extra 1 Recordatorio SIMPLE ref done_status done_status 4 const 2
El EXPLAIN
me muestra que usa 5 filas, la segunda vez 2 filas.
No creo que se use el índice, si lo entendí bien la primera vez debería darme 3 filas. ¿Qué hago mal?
SHOW INDEX FROM reminder
:
Tabla Non_unique Key_name Seq_in_index Column_name Colation Cardinality Sub_part Packed Null Index_type Comment Index_comment recordatorio 1 done_status 1 done_status A 5 NULL NULL BTREE
explicar extendido:
id select_type tipo de tabla possible_keys key key_len ref filas filtradas Extra 1 Recordatorio SIMPLE ref done_status done_status 4 const 2 100.00
show warnings
no mostró nada de interés.