PHP Portal » Blog » nutze ENUM vor VARCHAR oder CHAR

Werbung

nutze ENUM vor VARCHAR oder CHAR

geschrieben von

Die MySQL Typen CHAR und VARCHAR werden genutzt um kleine Texte bzw. Wörter in der Datenbank zu speichern. Um dies effizient zu machen, sollte man sehen ob man nich an deren Stelle ein ENUM nutzen kann.
So kann z.B. ein Kennzeichen für den Status vorhanden sein mit den Werten 'angelegt', 'freigeschaltet', 'versteckt', 'gelöscht'. Dies macht bei einem (VAR)CHAR Feld 14 Zeichen für das Längste Wort, wobei jedes Zeichen 1 Byte belegt - also 14 Byte Gesamtlänge zum speichern dieser Werte.

Wenn von vornherein bekannt ist, welche abzählbaren Werte in diesem Feld vorkommen können, sollte man statt dessen ein ENUM nutzen. Beim ENUM kann man den Text genauso wie bei VARCHAR vergleichen, auslesen und speichern. Intern speichert MySQL aber nur einen Zahlenwert. einen Verweis auf die Liste der möglichen Einträge. Der Speicherbedarf eines ENUM Feldes entspricht dabei der von TINYINT, also bedeutend weniger als das obere Beispiel.

Zu beachten dabei ist, dass ein ENUM Feld nur 127? verschiedene Werte haben kann.

PS: Die Prozedur ANALYSE() schlägt fast immer vor, ein (VAR)CHAR Feld zu einem ENUM zu wandeln. Ob dies jeweils sinnvoll ist, muss letzten Endes der Entwickler entscheiden.

Kommentare

aktuell liegen noch keine Kommentare vor

Trackbacks

aktuell sind keine Trackbacks vorhanden

Fotolexikon

Notiz am Rande: Unter Fotolexikon findet ihr viele Informationen zur Fotografie ;)