Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2011, 10h53   #1
Invité de passage
 
Homme
Développeur Web
Inscription : août 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : août 2011
Messages : 2
Points : 1
Points : 1
Par défaut problème temps de requête simple

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 :
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 :
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
stemathore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 12h16   #2
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
Quels sont vos index ?
Il faudrait en avoir un sur chacune de ces colonnes :

airports.iata
airports.cty_iso
routes.departure

Avez-vous regardé le plan d’exécution généré ?

Cordialement
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 13h20   #3
Invité de passage
 
Homme
Développeur Web
Inscription : août 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : août 2011
Messages : 2
Points : 1
Points : 1
Merci !

En effet avec les index ca va beaucoup mieux , 0.3 sec

J'avais oublié cela, car les bases existaient depuis longtemps sur Postrgres.

En effet lors de l'explain j'avais NULL sur possible_keys et key

MErci beaucoup !
stemathore est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h45.


 
 
 
 
Partenaires

Hébergement Web