Bonjour,
J'ai un souci avec un index sur une table MySQL qui n'est pas utilisé systématiquement dans une requête.
J'ai une table nommée ENTREPOSAGE qui contient 93535 lignes et 75 champs, dont celui-ci :
Code :
- Valide enum('N','O') NOT NULL DEFAULT 'N'
|
J'ai créé cet index :
Code :
- Nom Type Unique Compressé Colonne Cardinalité Null
- Valide BTREE Non Non Valide 1 Non
|
Quand j'exécute cette requête (sélection des valeurs N) :
Code :
- EXPLAIN SELECT * FROM entreposage WHERE Valide = 'N'
|
je constate que l'index est bien utilisé :
Code :
- id select_type table type possible_keys key rows extra
- 1 SIMPLE entreposage ref Valide Valide 69 Using index condition
|
Mais quand j'exécute celle-ci (sélection des valeurs O) :
Code :
- EXPLAIN SELECT * FROM entreposage WHERE Valide = 'O'
|
l'index est ignoré :
Code :
- id select_type table type possible_keys key rows Extra
- 1 SIMPLE entreposage ALL Valide NULL 93535 Using where
|
Je ne comprends pas pourquoi :-(
Quelqu'un peut-il m'aider ? Merci !
Message édité par Erwan21 le 08-10-2014 à 09:58:53