J'ai configuré ma table avec un index uniquement sur done_status (done_status = INT):
Quand j'utilise:
EXPLAIN SELECT * FROM reminder WHERE done_status=2
Je récupère ceci:
id select_type type de table possible_keys key key_len ref lines Extra 1 RAPPEL SIMPLE TOUT done_status NULL NULL NULL 5 Utilisation de where
Mais quand j'émets cette commande:
EXPLAIN SELECT * FROM reminder WHERE done_status=1
Je reçois ce qui suit:
id select_type type de table possible_keys key key_len ref lines Extra 1 SIMPLE rappel ref done_status done_status 4 const 2
Le EXPLAIN
me montre qu'il utilise 5 lignes, la deuxième fois 2 lignes.
Je ne pense pas que l'index soit utilisé, si je l'ai bien compris la première fois, il devrait me donner 3 lignes. Qu'est-ce que je fais mal?
SHOW INDEX FROM reminder
:
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Commentaire Index_comment rappel 1 done_status 1 done_status A 5 NULL NULL BTREE
expliquer étendu:
id select_type type de table possible_keys clé key_len ref lignes filtrées Extra 1 SIMPLE rappel ref done_status done_status 4 const 2100.00
show warnings
n'a rien montré d'intéressant.