Un index, c'est son rôle d'optimiser les clauses WHERE.
Donc t'as pas de question à question à te poser : t'as des champs intensivement utilisés dans tes requêtes : tu les index, sinon, tu les laisse.
Ca n'a strictement aucun rapport avec le fait que ce soit une FK.
Et un index ça ne se pose que sur des champs qui servent de CRITERE, si tu as une FK entre "commande et client", un index sur "commande.client_id", ne te sert à rien lorsque tu lis le client rattaché à une commande, puisque tu ne fais pas de filtre dessus.
en revanche, si tu fais une recherche de toutes les commandes pour un client donné, alors oui, il te faut un index sur ce champ.
tout comme il t'en faudra un sur la date de commande si tu veux faire des stats chronologiques... pourtant la date n'a rien à voir avec une clé étrangère...
c'est la base absolue des index, et c'est rigoureusement ce qu'a dit olivthill dans son premier post, même si c'est un peu plus confus.
y'a pas de relation intuitive entre FK et nécessité d'un index, ce qui ne veut pas dire que t'en a pas besoin.
que tu te fasses ban, j'en ai rien à secouer. y'a juste un certain nombre de règles élémentaires, qui commence par l'humilité quand on arrive sur un forum et qu'on pose une question, qu'on doit respecter. quand t'es venu poster, t'as accepté une charte d'utilisation, qui en fait pourtant mention explicitement. tout comme les règles élémentaires de la vie en communauté le rappellent.
Message édité par MagicBuzz le 31-01-2008 à 18:24:04