Bonjour,

Je viens de migrer un site précédemment sur Postgres.

Voici le genre de requête que j'ai pour construire des pages de référencement naturel


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Affichage des lignes 0 - 24 (25 total, Traitement en 21.8439 sec.)
SELECT `name` , `iata` , `cty_iso` , `lat` , `long` , count( * ) AS count
FROM airports
RIGHT JOIN routes ON airports.iata = routes.departure
WHERE airports.cty_iso = 'US'
GROUP BY `name` , `iata` , `cty_iso` , `lat` , `long`
ORDER BY count( * ) DESC
LIMIT 25
or sur postgres cette requête met moins d'une seconde.

La table airports contient 6000 entrées.
La table routes contient 65000 entrées et contient un ID, un code aeroport de départ ( departure ) , un code aéroport d'arrivée ( arrival ) tous deux en Varchar (4).

Comment puis-je optimiser cela ?
Avez vous plus de précisions....
Merci d'avance

Pour info :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
TABLE AIRPORT
	id 	bigint(20) 		UNSIGNED 	Non 	Aucun 	AUTO_INCREMENT 	Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	iata 	varchar(4) 	latin1_swedish_ci 		Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	name 	text 	latin1_swedish_ci 		Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	lat 	float 			Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	long 	float 			Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	cty_iso 	varchar(2) 	latin1_swedish_ci 		Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	used 	tinyint(1) 			Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
 
 
 
 
 
TABLE ROUTES
id 	bigint(20) 		UNSIGNED 	Non 	Aucun 	AUTO_INCREMENT 	Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	compagnie 	varchar(4) 	utf8_general_ci 		Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	departure 	varchar(4) 	utf8_general_ci 		Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	arrival 	varchar(4) 	utf8_general_ci 		Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	fleet 	text 	utf8_general_ci 		Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	codeshare 	tinyint(1) 			Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	stops 	int(11) 			Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	confortable 	float 			Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	votes 	bigint(20) 			Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier