indexer une table correctement
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:
1 2
| EXPLAIN
SELECT * FROM client AS c WHERE (client_cp= 38210 and client_nom = 'FDDDDD'); |
Code:
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:
1 2
| EXPLAIN
SELECT * FROM client AS c WHERE (client_cp= 38210 OR client_nom = 'FDDDDD'); |
Code:
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