MySql-Tabelle textfeld vermeiden?
lullu
- datenbank
0 globe
Guten Morgen,
ich habe eine Tabelle in der später einmal sehr lange Texte aber auch nur recht kurze Sätze stehen können. Jedoch sind sie vom Daten-Typ her in einer Tabelle zusammenzufassen. Also habe ich eine Tabelle mit id, etc und einem textfeld.
Ist es schlimm Performancetechnisch, wenn ich bei etwa 1/3 der Zeilen das textfeld nicht wirklich "voll" mache?
Grußle
n'abend,
Ist es schlimm Performancetechnisch, wenn ich bei etwa 1/3 der Zeilen das textfeld nicht wirklich "voll" mache?
Sofern dein "textfeld" den Typ TEXT repräsentieren soll, wirst du das ohnehin nicht "voll" machen können. TEXT ist jedoch nicht der dümmste Datentyp, wenn du nicht weißt wie lange deine Inhalte werden können.
TEXT-Spalten werden (wie bei BLOBs üblich) nicht in der Tabelle selbst gespeichert, sondern ein Datenpunkt an einem anderen Speicherort referenziert. Das bedeutet, dass du auf jeden Fall den Overhead hast, für jeden Datensatz die TEXT-Spalte aus einer anderen Ecke laden zu müssen.
Wenn du kurze und lange Inhalte differenzieren kannst - es sich also um verschiedene Dinge handelt (bspw. Adresse und Biographie) - solltest du die kurzen Inhalte in eigene Spalten verschieben. Wenn es sich aber um z.B. E-Mails handelt - die ein Einzeiler, aber auch ein halber Roman sein können, macht eine separate Speicherstruktur wenig Sinn.
weiterhin schönen abend...