Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Hat InnoDB statische Tabellen?

InnoDB hat Zeilen mit fester Breite, und es kann einen Vorteil haben, alle Spalten in einer Tabelle als Zeilen mit fester Breite zu deklarieren. Der Hauptvorteil besteht darin, dass alle "Löcher" in einer Seite für beliebige Einfügungen wiederverwendet werden können, da alle Zeilen die gleiche Länge haben. Dadurch wird die Raumwiederverwendung etwas effizienter. Ich würde jedoch nicht versuchen, Zeichenfolgen mit fester Breite über ein paar Dutzend Bytes zu erzwingen, da die Kosten für das Speichern der zusätzlichen Daten pro Seite (und damit weniger Zeilen pro Seite) alle Einsparungen/Gewinne, die Sie durch mehr erzielen würden, schnell überwältigen würden effiziente Wiederverwendung von Speicherplatz.

Zeilen mit fester Breite jedoch nicht jede beliebige Optimierung des Zeilenscannens (wie es bei MyISAM der Fall ist) zulassen. Die Zeilenspeicherung von InnoDB ist immer seitenbasiert und verwendet einen B+-Baum mit doppelt verknüpften Seitenlisten und einfach verknüpften Datensätzen innerhalb einer Seite. Die Zeilendurchquerung verwendet immer diese Strukturen und kann nicht anders durchgeführt werden.