Mam aplikację, która korzysta z tabeli PostgreSQL. Tabela jest bardzo duża (miliardy wierszy) i ma kolumnę, która jest liczbą całkowitą.
integer
Może wynosić do 6 cyfr, tj 0-999,999, bez negatywów.
Myślałem o tym, żeby to zmienić numeric(6,0)
.
Czy to byłby dobry pomysł? Zajmie numeric(6,0)
mniej bajtów? A co z wydajnością (ta tabela jest często pytana)?
postgresql
Ofiris
źródło
źródło
numeric
kolumny naint
?Ostateczna odpowiedź brzmi „nie” na wszystkie twoje pytania. Liczba całkowita jest zawsze sposobem na wszystko, do czego możesz jej użyć. (Na przykład pieniądze)
Pomyśl o tym przez chwilę. Gdy aparat bazy danych napotyka liczbę całkowitą, obsługuje go bardzo skutecznie, ponieważ nie ma w nim wiele interpretacji. To jest liczba całkowita. Typ numeryczny zachowuje się bardziej jak ciąg znaków. Silnik musi najpierw ustalić, które części znajdują się przed i za kropką dziesiętną, i odpowiednio masować je, aby wykonać operacje numeryczne.
Używanie liczb całkowitych zawsze będzie bardziej wydajne niż liczbowe, chociaż typy liczbowe są często wygodniejsze dla ludzi.
źródło
NUMERIC
. Skalowana liczba całkowita jest jednak znacznie lepsza niż stosowanie wartości zmiennoprzecinkowej w stosunku do ceny.