dedlfix: Tabelle aufteilen (fiktiv)

Beitrag lesen

Tach!

Ich würde hier abwägen was dir wichtiger ist. Hast du so viele Einträge dass leere Werte dich stören?
Wie ist das eigentlich genau mit leeren Strings bei einer varchar Spalte? Wenn ich die Doku bei MySQL richtig verstanden habe, verbraucht ein Leerstring keinen Platz.

Da wird nicht mehr als ein Zählbyte gespeichert werden. Im Handbuch gibt es bei den Datentypen auch eine Seite, die sich mit dem Speicherverbrauch beschäftigt.

Wenn du aber auslagerst, um ein paar Bytes Platz zu sparen, musst du aber auch bedenken, was deine zweite Tabelle an Platzbedarf hat. Da kommen zu jeder Zeile ja noch zwei Fremdschlüssel (Typ und Verweis auf die Raterunde des Spielers) hinzu, also 4 Bytes und gegebenenfalls eine Datensatz-ID. Wenn es weniger sind (TINYINT, SMALLINT) und damit weniger Datensätze speicherbar sind ergibt das Auslagern aus Speicherplatzgründen noch weniger Sinn, weil die Gesamtmenge schon gering genug ist. Diese Verwaltungs-Werte fressen dann den Vorteil des Platzsparens vermutlich deutlich wieder auf. Zudem kommt noch der Aufwand des Joinens.

Für das gegebene Beispiel ergibt das Vorhaben aus der Sicht mehr Nachteile als Vorteile. Das kann aber für andere Szenarien wieder ganz anders aussehen.

Wichtiger finde ich die Erweiterbarkeit bei der ausgelagerten Tabelle. Da kannst du in jedem Spiel eigene Rubriken bringen und musst nicht die komplette Tabelle auf etliche Spalten erweitern.
Ja das sehe ich auch als Vorteil.

Das wäre ein schwerer wiegende Design-Entscheidung, deren Vorteile die Nachteile des Mehrbedarfs an Platz und des Joinens locker wieder gutmachen kann, wenn der Rest des Programme entsprechend flexibel ausgelegt ist. Dabei fällt aber schon bei der Erstprogrammierung vermutlich mehr Aufwand gegenüber einer Version an, die auf festgelegte Felder ausgelegt ist. Letztere lässt sich mit verhältnismäßig geringem Aufwand erweiter, wenn man zumindest einen Großteil der Funktionalität in Funktionen abstrahiert hat und nicht nur den Copy&Paste-Programmierstil angewendet hat.

dedlfix.