Ich habe eine Tabelle mit ziemlich vielen Einträgen. Ich brauche eine zusätzliche Spalte mit einem Integer-Wert oder Null. Die Sache ist, dass nur sehr wenige Zeilen dieses Feld gefüllt haben.Mysql Spalte mit Nullwerten - was sind die Platzanforderungen?
Also ich frage mich, ob es besser ist, eine separate Tabelle zu erstellen, wo ich die Einträge in einer 1: 1-Beziehung verknüpfen.
Ich weiß, dass ein Integer-Eintrag 4 Bytes in MySQL/Myisam dauert. Wenn die Spalte so eingestellt ist, dass Nullwerte zulässig sind und nur 100 von 100 000 Zeilen das Feld ausgefüllt haben, wird der Rest für jeden Nullwert immer noch 4 Byte verbrauchen?
Oder ist mysql intelligent genug, um den Wert dort zu setzen, wo es bevölkert ist, und einfach alles als null betrachten, wo nichts gesetzt ist?
Wie konnte es möglich sein, Null Raum zu verwenden, Nullwerte speichern Es muss? etwas kostet, ist es nicht möglich, sich an die Werte zu erinnern –
@nate c ... naja, nur die Daten speichern und alle Daten, die keinen entsprechenden Teil haben, sind implizit null –
Es gibt nichts in diesem Link, der sagt, wie Nullen gespeichert werden Ich speichere 6 Spalten von Ints, wobei die Werte 33,44,66 sind. Drei Spalten sind implizit Null. Welche 3 Spalten sind das? Das ist null Speicher. Zumindest braucht man ein Bitfeld um zu sagen, welche Spalten da sind und welche nicht. –