Der richtige Datentyp für Tabellen-Spalten ist nicht nur für den Wertebereich zuständig und damit entscheidend, welche Werte gespeichert werden können, sondern beeinflusst auch die Performance der Datenbank. Aus diesem Grund sollte der Datentyp mit Überlegung gewählt werden.
In der folgenden Übersicht finden sich die "gängigsten" Datentypen wieder, deren Speicherbedarf (in Klammern) und Wertebereich.
TINYINT (1 Byte)
Ganzzahlen: 0 bis 255
Mit Vorzeichen: -128 bis +127
SMALLINT (2 Bytes)
Ganzzahlen: 0 bis 65.535
Mit Vorzeichen: -32.768 bis +32.767
MEDIUMINT (3 Bytes)
Ganzzahlen: 0 bis 16.777.215
Mit Vorzeichen: -8.388.608 bis +8.388.607
INT (4 Bytes)
Ganzzahlen: 0 bis 4.294.967.295
Mit Vorzeichen: -2.147.483.648 bis +2.147.483.647
BIGINT (8 Bytes)
Ganzzahlen: 0 bis 18.446.744.073.709.551.615
Mit Vorzeichen: -9.223.372.036.854.775.808 bis +9.223.372.036.854.775.807
FLOAT (4 Bytes)
Fließkommazahlen
Ganzzahlen: 0 und 1,175494351^38 bis 3,402823466^38
Mit Vorzeichen: -3,402823466^38 bis +1,175494351^38
DOUBLE (8 Bytes)
Fließkommazahlen
Ganzzahlen: 0 und 2,225^-308 bis 1,798^308
Mit Vorzeichen: -1,798^308 bis +2,225^-308
DATE (3 Bytes)
Datum-Bereich: von 01.01.1000 bis 31.12.9999
DATETIME (8 Bytes)
Datum-Bereich: von 01.01.1000 - 00:00:00 bis 31.12.9999 - 23:59:59
TIMESTAMP (4 Bytes)
Werte-Bereich: von 01.01.1970 bis 2037
VARCHAR (Stringlänge + 1 Byte)
Zeichenkette mit einer Länge von 0 bis 255 Zeichen. Jedes Zeichen belegt 1 Byte
TEXT (Stringlänge + 2 Bytes)
Maximale Größe 65.535 Bytes
Ein Text mit 1.000 Zeichen würde also 1.002 Bytes belegen
MEDIUMTEXT (Stringlänge + 3 Bytes)
Maximale Größe 16.777.215 Bytes
Ein Text mit 1.000 Zeichen würde also 1.003 Bytes belegen
LONGTEXT (Stringlänge + 4 Bytes)
Maximale Größe 4.294.967.295 Bytes
Ein Text mit 1.000 Zeichen würde also 1.004 Bytes belegen
Was die Performance angeht ist darauf zu achten, dass der kleinstmögliche Datentyp gewählt wird und wenn Tabellen miteinander verknüpft werden sollten die Felder, die verknüpft werden, vom gleichen Datentyp sein, sonst kann es passieren, dass die gesetzten Indizes nicht verwendet werden.