IP-Adressen optimal speichern

In (fast) allen Webprojekten müssen IP-Adressen gespeichert werden. Wenn nur einige wenige Einträge in der Datenbank vorhanden sind, ist das sicher kein Problem. Interessant wird es, wenn mehrere 1000 Einträge durchsucht werden müssen, um festzustellen, ob eine IP vorhanden ist, oder nicht. Wie man das ganze effektive steuert wird im folgenden erläutert.

Boolesche Werte in MySQL

Ein häufiger Anwendungsfall für MySQL-Tabellen ist die Speicherung eines Wahrheitswertes. In den meisten Programmiersprachen ist eine Variable mit dem Wertebreich [0;1] vom Typ Boolean. In MySQL gibt es keinen solchen Datentyp. Aus diesem Grund soll dieser Beitrag Klarheit darüber schaffen, welcher Datentyp für einen Wahrheitswert wann am sinnvollsten ist.

CHAR oder VARCHAR? Statisch oder dynamisch?

Oft steht man bei der Wahl des Datentyps für eine Tabellenspalte vor der Frage, ob man die statische CHAR– oder die dynamische VARCHAR-Version nutzt. Im Internet findet man auch unterschiedliche Meinungen dazu (vgl. Zach Nichters Beitrag und die offizielle Stellungnahme in der MySQL-Dokumentation, deshalb wollte ich mir selbst ein Urteil dazu bilden.

Datentypen: So klein wie möglich, so groß wie nötig

Jede Spalte in einer Tabelle hat einen Datentyp. Einige sind untereinander kompatibel, andere weniger. Um sämtliche Prozesse der Datenbank zu beschleunigen, ist es ratsam die Datentypen clever zu wählen und nicht „frei Schnauze“ einfach bei allen Ganzzahlen BIGINT zu nehmen, denn „das wird schon funktionieren“. Sicherlich funktionierts – nur zu welchem Preis?