Hello,
Das habe ich schon gesehen, aber soll das etwa heißen, nur weil ich 500 Zeichen speichern will, muss ich den Speicherbedarf einer TEXT/BLOB Spalte hinnehmen? CHAR/VARCHAR gehen ja nur bis 255 und dazwischen gibts nichts mehr.
Die Text- und Blob-Typen nehmen in der Praxis nur den angegebenen Speicherplatz zuzüglich dem Platz für einen Schlüssel-/Offset-Wert in der "linken Tabelle" ein. Grob betrachtet, besteht eine Tabelle, die Text-Typen enthält aus der eigentlichen Tabelle sowie einer Tabelle für die Textfelder [1]. Die Textfelder werden in "ihrer Tabelle" in Blöcken verwaltet. Wie die Quantisierung diesr Blöcke geregelt ist, weiß ich (noch) nicht. Vielleicht kann man sie sogar einstellen. Ich vermag auch nicht zu sagen, ob die Blöcke bei jedem Zugriff neu organisiert (aufgerückt, Lücken dazwischen entfernt...) werden.
Könnte sein, dass das bei MySQL inzwischen etwas intelligenter geregelt ist, als damals beim guten alten dBase und seinen Memo-Feldern. Die mussten 1983 noch sehr viel Rücksicht auf die lahmen Systeme nehmen.
Die beiden Tabellen werden in einer Datei geführt in "Seiten".
Mach doch einfach mal einen Versuch zu dem Thema. Hast Du Zugriff auf die Dateien der DB? Füge einfach ein paar Datensätez mit Textfeldern hinz und schau dir die zur Tabelle gehörige *.MYD an, wie sie wächst. Dann lösch ein paar Datensätze und schau, was die Datei dann macht.
Und vergiss nicht, das Ergebnis hier zu posten.
Bei Char und VarChar werden immer M
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen