Vitesse requetes jointure mysql, et Indexes

humainbot

WRInaute discret
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:
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:
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
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.
 

Discussions similaires

Haut