[MySQL] Plusieurs index sur plusieurs champs..

RomsIW
WRInaute passionné
WRInaute passionné
 
Messages: 1144
Inscription: 25 Mai 2004

[MySQL] Plusieurs index sur plusieurs champs..

Message le Ven Juin 13, 2008 14:33

Bonjour à tous,

j'essaie un petit peu d'optimiser mes requêtes, notamment au niveau des index.

L'idée est que j'ai une table sur laquelle mes where vont tantôt taper sur un champ (C1), tantôt sur un autre (C2) => WHERE C1=qqchose OU WHERE C2=qqchose

Mais sur d'autres requêtes, le WHERE se fait sur les deux => WHERE C1=qqchose AND C2=qqchose

Que vaut-il mieux faire ?

Mettre un index séparé pour chacun des deux champs ?
Mettre un index commun pour ces deux champs ?
Mettre un index séparé pour chacun + un index commun ?

Merci de votre aide,

Rom's


fabor
WRInaute discret
WRInaute discret
 
Messages: 152
Inscription: 17 Mar 2005

Message le Ven Juin 13, 2008 14:53

un index pour chacun des champs

RomsIW
WRInaute passionné
WRInaute passionné
 
Messages: 1144
Inscription: 25 Mai 2004

Message le Ven Juin 13, 2008 21:06

c'est ce que j'ai mais lorsque je fais un explain, il fait comme s'il n'y avait pas d'index.. :(


Bool
WRInaute passionné
WRInaute passionné
 
Messages: 1290
Inscription: 26 Fév 2004

Message le Ven Juin 13, 2008 23:48

Le mieux à mon avis est de faire deux indexes : l'un contenant les colonnes A et B et l'autre contenant uniquement B.

Ainsi ces indexes seront utilisés dans ces 3 cas :
- A utilisé seul
- B utilisé seul
- A et B utilisés simultanément

Toutefois l'optimiseur MySQL peut décider d'utiliser un index ou non selon le nombre d'enregistrements de la table ou encore le nombre de colonnes récupérées.
En gros quand MySQL pense que l'index n'apporte rien, il ne l'utilisera pas.


Un analyze table (inclus dans le optimize table) de temps en temps permet d'ailleurs à l'optimiseur de MySQL de mieux estimer ces cas.


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

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Outils linguistiques de Google

  • La classe C de l'adresse IP
    Cet outil vous permet de vérifier si plusieurs sites sont hébergés sur la même classe C (adresse IP du serveur).
  • Trouver la position de son site dans Google
    Cet outil vous permet de vérifier si une ou plusieurs page(s) de votre site arrive(nt) dans les premiers résultats de Google, pour certains mots-clés recherchés.
  • Trouver la position de son site dans Yahoo
    Cet outil vous permet de vérifier si une ou plusieurs page(s) de votre site arrive(nt) dans les premiers résultats de Yahoo, pour certains mots-clés recherchés.
  • Logiciel d'analyse du positionnement
    AgentWebRanking est un logiciel professionnel qui permet d'analyser le positionnement d'un ou plusieurs sites dans plus de 300 moteurs de recherche dans le monde. Vous pouvez ainsi analyser les performances du référencement pour de nombreux mots-clés.


Qui est en ligne

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