Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql , bigint oder decimal zum Speichern von> 32-Bit-Werten, aber weniger als 64 Bit

Meiner Meinung nach wäre bigint besser. Es wird als Ganzzahl gespeichert, die MySQL nativ versteht, ohne dass eine Konvertierung erforderlich ist, und wird daher (wie ich mir vorstelle) schneller manipulieren. Sie sollten daher damit rechnen, dass MySQL geringfügig effizienter ist, wenn Sie bigint verwenden.

Gemäß dieser Handbuchseite , werden die ersten 9 Ziffern Ihrer Nummer in einem Vier-Byte-Block und die restlichen Ziffern (Sie benötigen bis zu 12) in einem Zwei-Byte-Block gespeichert. Das bedeutet, dass Ihre Spalte 6 Bytes pro Zeile belegt, im Gegensatz zu 8 Bytes für bigint. Ich würde vorschlagen, dass Sie dies tun sollten, es sei denn, a) Sie speichern eine wirklich obszöne Anzahl von Zeilen, sodass der belegte Speicherplatz ein ernsthaftes Problem darstellt, und b) Sie die fraglichen Daten nur sehr wenig abfragen müssen gehen Sie mit bigint.