Neue Tabelle für jeden Benutzer?

8

Ich möchte neue Tabelle für jeden neuen Benutzer auf der Website erstellen und ich nehme an, dass es viele Benutzer geben wird, bin ich sicher, dass die Suchleistung gut sein wird, aber was ist mit der Wartung?

Es ist MySQL, das keine Begrenzung der Anzahl der Tabellen hat.

Vielen Dank.

    
eomeroff 30.05.2010, 21:21
quelle

4 Antworten

13

Tatsächlich werden Tabellen auch in einer Tabelle gespeichert. In diesem Fall würden Sie die Suche in einer Tabelle von Benutzern verschieben, um in den Systemtabellen nach einer Tabelle zu suchen.

Leistung UND Wartbarkeit werden schlecht leiden.

    
Peter Tillemans 30.05.2010, 21:38
quelle
9

Warum möchten Sie das vielleicht tun? Haben Sie nur eine Tabelle für jede Sache, die eine Tabelle benötigt, und fügen Sie eine "Benutzer" -Spalte hinzu. Eine Reihe von Tabellen im Vergleich zu einer Reihe von Zeilen wird Ihre Leistung nicht verbessern.

    
Brendan Long 30.05.2010 21:23
quelle
6

Das ist keine gute Idee:

  • Die maximale Anzahl von Tabellen ist unbegrenzt, aber der Tabellen-Cache ist in der Größe begrenzt, das Öffnen von Tabellen ist teuer. Wenn Sie in MyISAM eine Tabelle schließen, wird der Schlüsselcache entfernt. Leistung wird lutschen.
  • Wenn Sie das Schema ändern müssen, müssen Sie eine ALTER TABLE pro Benutzer ausführen, was ein unnötiger Schmerz ist
  • Suchen nach Dingen für keinen bestimmten Benutzer wird eine schreckliche UNION-Abfrage zwischen allen oder vielen Benutzer-Tabellen beinhalten
  • Es wird schwierig sein, Fremdschlüssel-Constraints korrekt zu konstruieren, da Sie keine einzige Tabelle mit allen Benutzer-IDs mehr haben werden

Warum sind Sie sicher, dass die Leistung gut ist? Hast du es getestet?

    
MarkR 30.05.2010 22:16
quelle
4

Um Ihnen eine direkte Antwort auf Ihre Frage zu geben: Die Wartung senkt Ihren Enthusiasmus im gleichen Maße, in dem sich neue Nutzer für Ihre Website anmelden. Sie sind sich nicht sicher, welche Sprache / welches Framework Sie für Ihre Website verwenden, aber in diesem Stadium ist es am besten, einige kleine Beispiele in diesem zu suchen. Wir vermuten, dass in jedem Beispiel, das Sie finden, jeder neue Benutzer einen Datensatz in einer Tabelle und keine Tabelle in der Datenbank erhält.

    
Jochem Schulenklopper 30.05.2010 21:32
quelle

Tags und Links