Vitesse requetes jointure mysql, et Indexes

humainbot
WRInaute discret
WRInaute discret
 
Messages: 207
Inscription: 26 Sep 2004

Vitesse requetes jointure mysql, et Indexes

Message le Dim Aoû 06, 2006 17:48

Salut a tous,
J'ai 2 tables mysql (artistes,musiques) : chacune contient environ 30.000 enregistrement. C'est pour cela que j'ai mis des index dans chacun des id.

Mais lorsque je veux par exemple sortir les top musiques avec cette requete :
Code: Tout sélectionner
EXPLAIN SELECT id, artiste, titre FROM artistes, musiques WHERE artistes.id = musiques.idartiste LIMIT 10


Cela parcour 33000x30 resultat, autant dir 78 secondes d'execution :
Code: Tout sélectionner
id  select_type  table  type  possible_keys  key  key_len  ref  rows  Extra 
1 SIMPLE artistes ALL idartiste NULL NULL NULL 33913   
1 SIMPLE musiques ref idartist,idpar idartist 4 base.artistes.id 30 Using where

Pourtant j'ai indexé les champs idartiste dans la table musiques, et id dans la table artistes.
Any Idea :?:


bossboss
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 266
Inscription: 28 Aoû 2004

Message le Lun Aoû 07, 2006 8:02

As-tu bien réfléchit au schéma de ta base de données? Ne serait-il pas opportunt de créer une ou plusieurs quelques autres table(s) qui diminuerait le nombre d'enregistrement à lire.

petit-ourson
WRInaute impliqué
WRInaute impliqué
 
Messages: 855
Inscription: 31 Mai 2004

Message le Lun Aoû 07, 2006 9:04

Et en utilisant un INNER JOIN ??


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités