SQL Datentypen

In einer SQL Datenbank hat man viele unterschiedliche Datentypen, die alle unterschiedliche Werte aufnehmen können. Als Beispiel kann man für numerische Werte theoretisch immer den Datentyp BIGINT verwenden, dadurch kann man pro Zeile Zahlen von -(2^63) bis (2^63)-1 eintragen, doch verbraucht jede Zeile dann auch 8 Byte und bei mehreren Millionen Einträgen ist das nicht sonderlich platzsparend.

Besser ist es, wenn man immer den Datentyp wählt, der für die jeweilige Spalte „reicht“, dazu ein paar Beispiele:

  • Username – VARCHAR (20-40 Zeichen, je nachdem wieviel man dem User bei der Wahl gibt)
  • Datum – ich nutze dafür eigentlich immer DATETIME, so habe ich alle wichtigen Werte (bis runter zur Sekundenzahl) und kann es, mit der richtigen PHP Funktion, angepasst ausgeben
  • ID’s – UNSIGNED INT, bietet genug Platz für ca. 4,3 Milliarden Einträge. Facebook nutzt dafür UNSIGNED BIGINT, aber die brauchen diese Kapazität auch ;)
  • Passwörter – man sollte Userpasswörter immer MD5 kodiert in der Datenbank abspeichern. Damit ist ein Passwortfeld vom Typ VARCHAR(32) (da es 32 Zeichen beansprucht)
  • PLZ – VARCHAR(5) oder UNSIGNED ZEROFILL MEDIUMINT(5) (es gibt Postleitzahlen die mit einer 0 beginnen)

Eine sehr übersichtliche Liste der Datentypen, max. Werten, Speicherbedarf und sonstigen Hinweisen, findet sich hier: schmager.de – MySQL Datentypen (für MySQL-Version 4.1)

hier geht's weiter...



Feedback Formular