Frage

ich einen 8 Sätze von Daten von etwa 30.000 Zeilen für jeden Satz habe, ist die Daten die gleiche Struktur nur für verschiedene Sprachen.

Das vordere Ende der Website wird relativ hohen Verkehr.

Also meine Frage MySQL Leistung in Bezug auf, wenn ich eine einzelne Tabelle mit einer Spalte zu unterscheiden, welche die Datensatz haben soll, gehört zu (das heißt coloumn „Sprache“) oder erstellen Sie einzelne Tabellen für jede Sprache eingestellt?

(eine Erklärung, warum, wenn möglich, wirklich hilfreich wäre)

Vielen Dank im Voraus Shadi

War es hilfreich?

Lösung

würde ich mit einzelnem Tabellenentwurf gehen. Die Suchzeit, mit dem richtigen Index sollte genau das gleiche, egal wie „breit“ Tabelle ist.

Neben Performance-Problemen, wird dies vereinfachen Design und die Beziehungen zu anderen Tabellen (Fremdschlüssel usw.).

Andere Tipps

Ein weiterer Nachteil des „eine Tabelle pro Sprache“ Design ist, dass Sie Ihr Schema jedes Mal, wenn Sie ein Add ändern.

Eine Sprache Spalte bedeutet, dass Sie nur Daten hinzufügen müssen, die nicht aufdringlich ist. Letzteres ist der Weg zu gehen.

würde ich auch mit einem Tisch Design gehen. Da die Mächtigkeit des language_key sehr gering ist, würde ich den Tisch language_key partitionieren stattdessen einen Index zu definieren. (Wenn Ihre Datenbank unterstützt.)

Ich stimme mit den anderen Antworten - ich einer einzelnen Tabelle verwenden würde. Im Hinblick auf die Performance-Optimierung eine Reihe von Dingen haben das Potenzial, einen größeren Einfluss auf die Leistung haben:

  • geeignete Indizierung
  • Schreiben / Prüfung für die Suche nach Effizienz
  • chosing entsprechende Speicher-Engine (s)
  • die Hardware
  • Typ und Konfiguration des Dateisystems (s)
  • Optimierung mysql Konfigurationseinstellungen

... usw. ich ein Fan von High Performance MySQL

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top