optimiser une requête mysql avec LEFT OUTER JOIN

+2 votes
9,103 vues
question 4 Décembre 16 dans Sql Phpmyadmin par jarda (249 points)  
editée 4 Décembre 16 par ladmin
comment optimiser

SELECT c.* FROM lmbv3_jstats_clients AS c LEFT OUTER JOIN lmbv3_jstats_visits AS v ON c.client_id = v.client_id WHERE v.ip = "0123456789" AND (c.visitor_id = 0 OR c.visitor_id IS NULL);

merci
commentée 4 Décembre 16 par ladmin (2,277 points)  
J'ai modifié le titre. Nous sommes loin des questions pour experts comme vous le suggériez :)

1 Réponse

+1 vote
réponse 5 Décembre 16 par ladmin (2,277 points)  
comme toujours , sans group by et sans sommation, nous pouvons ignorer les colonnes du select.

Ensuite, le join relie 2 colonnes qui doivent être des index. Souvent, l'une est déjà un index Primary et l'autre a été oublié

Enfin, il y a une condition sur v.ip et une autre sur sur c.visitor_id  qui doivent être des index.

Mysql accepte les index doublons mais ca n'arrange pas les performances. Vérifiez donc que certains index n'existent pas déjà.

Tous les ajouts peuvent être effectués assez convivialement dans phpmyadmin, table, structure ...
Feel free to ask and answer in english

Bienvenue sur les FAQ de 123.fr, posez vos questions ou répondez à celles des autres usagers.

...