Bonjour,
J'ai indexé ma table client sur les champs suivants :
- nom_client => idx_client_nom
- cp_client => idx_client_cp
Quand je fais un explain SQL : mon indexation est bien prise en compte
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 EXPLAIN SELECT * FROM client AS c WHERE (client_cp= 38210 and client_nom = 'FDDDDD');
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <DATA> <ROW> <id>1</id> <select_type>SIMPLE</select_type> <table>c</table> <type>ref</type> <possible_keys>idx_client_nom,idx_client_client_nom_client_facture_client_utilisateur,idx_client_cp</possible_keys> <key>idx_client_nom</key> <key_len>66</key_len> <ref>const</ref> <rows>1</rows> <Extra>Using index condition; Using where</Extra> </ROW> </DATA>
Par contre, quand je fais
Quand je fais un explain SQL : mon indexation n'est pas prise en compte
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 EXPLAIN SELECT * FROM client AS c WHERE (client_cp= 38210 OR client_nom = 'FDDDDD');
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <DATA> <ROW> <id>1</id> <select_type>SIMPLE</select_type> <table>c</table> <type>ALL</type> <possible_keys>idx_client_nom,idx_client_client_nom_client_facture_client_utilisateur,idx_client_cp</possible_keys> <key>NULL</key> <key_len>NULL</key_len> <ref>NULL</ref> <rows>11815</rows> <Extra>Using where</Extra> </ROW> </DATA>
QUESTION : COMMENT FAIRE POUR QUE MON INDEXATION SOIT UTILISEE QUAND J UTILISE DES 'OR' DANS MES REQUËTES SQL ?
Merci de votre attention et pour vos éventuels réponses.
Cordialement,
Titoff
Partager