MySQL - Platz sparende IP-Adressen
07.07.2009 11:04
IP-Zeichenketten in Ganzzahlwerte konvertieren
Werden IP-Adressen als Zeichenkette gespeichert, kostet das Platz. Denn um die maximale Länge einer Adresse zu berücksichtigen, braucht man 15 Zeichen. Die Funktion inet_aton(), die es seit der Version 3.23 in MySQL gibt, wandelt eine als String angegebene IP-Adresse dagegen in einen Integer-Wert um, der lediglich 4 Byte für die Speicherung beansprucht. Sie definieren das verwendete Feld einfach als INT UNSIGNED und verwenden beim Speichern:
inet_aton(‘192.168.0.1’)
Für die Rückwandlung ist die Funktion inet_ntoa() zuständig. Die komprimierte Form wirkt sich zwar nur bei großen Mengen richtig platzsparend aus, bietet aber einen weiteren Vorteil: Das numerische Datenformat macht den Index auf diesem Feld effizienter. Damit werden also Zugriffe auf die jeweilige Tabelle schneller, wenn dabei nach der IP-Adresse gesucht wird. (Martin Goldmann/am)
