MySql - Optimisation - Champ indexé AND Champ pas indexé

MySql - Optimisation - Champ indexé AND Champ pas indexé - SQL/NoSQL - Programmation

Marsh Posté le 31-07-2002 à 15:16:26    

Désolé pour le titre non-explicite, je ne savais pas comment nommer mon topic !
 

Code :
  1. SELECT * FROM matable WHERE monchamp=3 AND status=2


monchamp est un MEDIUMINT(255) avec INDEX
status est un ENUM('0','1';) sans INDEX
En fait je cherche à savoir comment fonctionne la requête.
 
1. Est-ce que mettre monchamps=3 AND status=2 équivaut à status=2 AND monchamps=3 ?
2. Est-ce que MySql sélectionne d'abord ce qui correspond à monchamps=3, puis ensuite, à l'intérieur de cette première sélection, cherche les lignes où status=2 ?

Reply

Marsh Posté le 31-07-2002 à 15:16:26   

Reply

Marsh Posté le 15-08-2002 à 06:02:27    

1) Oui (y a un optimizer fait pour ca dans MySQL :D)
2) Oui (idem)
 
Mais c'est plus efficace de mettre un index sur (monchamp,status)
 
dans ce cas t'optimise les requètes de type :
 
WHERE monchamp=x
WHERE monchamp=x AND status=y
 
par contre  t'optimise pas
 
WHERE status=y (si tu veux le faire il faut poser un index sur status en plus)


Message édité par joce le 15-08-2002 à 06:03:41
Reply

Marsh Posté le 15-08-2002 à 23:46:14    

Merci bien pour ta réponse.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed