Question

Désolé tout,

Je n'ai cette mini-table avec 3 colonnes, mais je vais énumérer les valeurs soit par une ou l'autre colonne.

1) Est-il acceptable d'avoir deux de ces colonnes avec des index?

2) Faut-il avoir un seul index par table?

3) A la limite, si nous avons une table avec 100 colonnes par exemple, et nous avons 50 d'entre eux avec des index, est-ce ok?

Merci, MEM

Était-ce utile?

La solution

Il est bien d'avoir de nombreux indices, même plusieurs index sur une table, aussi longtemps que vous les utilisez .

Exécuter EXPLIQUEZ vos requêtes et vérifiez quels index sont utilisés. S'il y a des indices qui ne sont pas utilisés par des questions alors ils ne vous donnent pas un avantage et ralentissent juste en bas de modifications à la table. Ces index inutilisés doivent être supprimés.

Vous pouvez également considérer les index sur plusieurs colonnes si vous ne l'avez pas déjà fait.

Autres conseils

Pour répondre rapidement à vos questions, je pense:

  1. Oui, il est OK d'avoir deux colonnes ou encore plus avec index
  2. Pas nécessairement. Vous pouvez avoir plus d'un index par table.
  3. Il est peut-être OK, il est peut-être pas OK. Ça dépend. La chose avec des indices est qu'ils prennent l'espace (dans DISK) et ils font des opérations qui modifient vos données (INSERT / UPDATE / DELETE) plus lent puisque pour chacune et chacun d'entre eux, il y aura une table et INDEX mise à jour en question.

Votre création d'index devrait être guidé par vos requêtes. Voir quelles requêtes allez-vous avoir sur votre système et créer des index en conséquence.

Il n'y a pas de problème d'avoir plus d'un index par table, et non, un index par table n'est pas vraiment une ligne directrice.

Avoir trop d'index est inefficace parce que

  • Il nécessite un stockage supplémentaire
  • MySQL doit déterminer quel index utiliser pour une requête particulière

Edit: Comme par Pablo et Mark, vous devez comprendre comment vos données sont accessibles pour que vous puissiez construire des indices efficaces. Vous pouvez ensuite affiner et de réduire les indices.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top