2009-07-23 8 views
4

J'ai 8 ensembles de données d'environ 30 000 lignes pour chaque ensemble, les données sont de la même structure pour différentes langues.Performance MySQL: Table unique ou plusieurs tables

La partie frontale du site aura un trafic relativement élevé. Donc ma question concerne les performances de MySQL, si je devais avoir une seule table avec une seule colonne pour distinguer à quel jeu les données appartiennent (c'est-à-dire coloumn "language") ou créer des tables individuelles pour chaque jeu de langues?

(une explication sur la raison pour laquelle, si possible serait vraiment utile)

Merci à l'avance Shadi

Répondre

5

Je voudrais aller avec la conception de table. Le temps de recherche, avec un index approprié, devrait être exactement le même, peu importe la taille de la table. En plus des problèmes de performances, cela simplifiera la conception et les relations avec d'autres tables (clés étrangères, etc.).

2

Un autre inconvénient de la conception "une table par langue" est que vous devez modifier votre schéma chaque fois que vous en ajoutez un.

Une colonne de langue signifie que vous avez juste à ajouter des données, ce qui n'est pas intrusif. Ce dernier est le chemin à parcourir.

+0

Vous pouvez le faire avec des relations normales: translationStrings (stringID, chaîne), des traductions (stringID, languageId, traduction) - il pourrait ajouter une relation/clé étrangère/joindre sur select, mais ajoute de la flexibilité. – leafnode

2

Je voudrais aller avec un design de table unique aussi. Puisque la cardinalité de la langue_key est très faible, je partitionnerais la table sur language_key au lieu de définir un index. (Si votre base de données le supporte.)

0

Je suis d'accord avec les autres réponses - j'utiliserais une seule table. En ce qui concerne l'optimisation des performances d'un certain nombre de choses ont le potentiel d'avoir un plus grand impact sur les performances:

  • indexation appropriée
  • écriture/test pour l'efficacité des requêtes
  • chosing moteur de stockage approprié (s)
  • le matériel
  • de type
  • et configuration du système de fichiers (s)
  • paramètres de configuration de l'optimisation mysql

... etc. Je suis fan de High Performance MySQL

Questions connexes