Memofelder...
-
Ich kenne aus einigen Firmen den Ansatz Memofelder (wie auch immer sie in den unterschiedlichen Datenbanken heißen) aus Tabellen zu verbannen und als separate Tabellen einzupflegen, oder sogar getrennte Tabellen mit gleicher Bedeutung zu halten, in der in der einen Memo- in der anderen begrenzte Textfelder verwendet werden. Angeblich aus gründen des Speicherbedarfs und der Performance.
Ich würde daher gerne mal wissen ob solche Ansätze wirklich berechtigt sind, und wie Memofelder tatsächlich in Datenbanken untergebracht werden. Nach meinem Verständnis werden in der Regel Memofelder so abgelegt, das eine Begrenzte Anzahl von Zeichen (z.b. 255) tatsächlich in der Tabelle liegen, und der Rest über eine Art Verweis aufgelöst wird. Zumindest deuten darauf Einschränkungen aus mehreren Datenbanken, das bei Memofeldern nur eine begrenzte Anzahl von Zeichen etc. für Sortierung usw. verwendet wird.
Wenn ich Richtig liege wäre es unsinnig mehrere Tabellen etc. vorzuhalten wenn man Felder hat die zwar häufig, aber nicht immer in ca. 250 Zeichen passen. Wir haben z.B. 2 Einstellungstabellen in der einen ein Textfeld mit 255 Zeichen, in der anderen ein Memofeld. Da ich weitgehend für die Datenbank verantwortlich bin, würde ich wenn nicht wirklich etwas dagegen spricht die Tabellen vereinheitlichen (Was ein paar Tabellen sowie etwas Zugriffslogik einsparen würde).
Bei uns dienen solchen Felder niemals als Suchkriterium, und auch liegen keine Indexe auf diesen.
-
Mach IMHO nur Sinn, wenn es normal ist, dass man nur einen Teil der Daten benötigt, dann müllt der Blob nicht den Cache zu, falls die Datenbank minderbemittelt genug ist, das nicht selbst handeln zu können.
Wenn man den Blob eh immer mit lädt, wenn man den Rest der Daten selektiert, kann man den Blob auch gleich in derselben Tabelle wie den Rest der Daten lassen.