Bonjour,

J'ai un souci de délai d'exécution pour une requête à multiples LEFT JOIN

Contexte :
- J'ai une table glossaire dont je veux faire la liste
- Chaque élément de la table glossaire pour avoir une URL particulière ou pas (j'ai créé la table element_URL car le champ est rare)
- Chaque élément de la table glossaire pour avoir un autre non ou pas (j'ai créé la table element_nom2 car le champ est rare)
- Chaque élément de la table glossaire a un article (Dont le lien est décrit dans la table articles_elements) ou pas d'article

Tout ceci fonctionne mais c'est un peu long : 8 secondes comparé à 0.8 secondes la seconde requête pour 630 éléments en test local.

1ère requête : 8 s
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT glossaire.Id, glossaire.Nom, CONCAT(element_url.URL,'?',element_url.URL_Parametres) as URL, element_nom2.Nom2 AS Nom2, articles_elements.Id  
		FROM glossaire 
		LEFT JOIN element_url ON (element_url.Element_Table_Id = 3 AND element_url.Element_Id = glossaire.Id) 
		LEFT JOIN element_nom2 ON (element_nom2.Element_Table_Id = 3 AND element_nom2.Element_Id = glossaire.Id)  
   		LEFT JOIN articles_elements ON (articles_elements.Elements_Id = glossaire.Id AND articles_elements.Tables_Id = 3) 
		GROUP BY glossaire.Nom
		ORDER BY glossaire.Nom
2ème requête : 0.8 s
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT glossaire.Id, glossaire.Nom, CONCAT(element_url.URL,'?',element_url.URL_Parametres) as URL, element_nom2.Nom2 AS Nom2
		FROM glossaire 
		LEFT JOIN element_url ON (element_url.Element_Table_Id = 3 AND element_url.Element_Id = glossaire.Id) 
		LEFT JOIN element_nom2 ON (element_nom2.Element_Table_Id = 3 AND element_nom2.Element_Id = glossaire.Id)  
		ORDER BY glossaire.Nom


Avez-vous une idée d'optimisation ?

D'avance merci