Bonjour,

Mon problème est simple.
La requête ci-dessous est longue et gourmande :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT
DISTINCT t1.id
FROM t1
inner JOIN t2 on t2.id = t1.id
WHERE t2.champ_1= 13
AND t2.champ_2 = 1
Hors c'est une requête simple avec une jointure simple.
t1 contient 1 700 000 lignes et t2 370 000.

Je crois avoir ciblé là ou ça pèche. En effet sur un explain, j'obtiens sur la jointure t2.id = t1.id un nested loop qui est assez gourmand, alors que j'ai des index sur les deux tables. En glanant des infos par ci par là, j'ai vu qu'il y avait un rapport avec les statistiques de la table mais sans comprendre plus que cela.

De plus, cette requête est une version simplifiée au minimum de plusieurs requêtes que j'utilise sur mes sites. Et ces sites accueillent quelques 70 000 visites par jour donc le moindre problème de performance nuit à l’accès des sites.

Si quelqu'un a une idée sur le pourquoi du comment, je suis preneur.

merci à tous