Większość operacji jest najszybsza dla zwykłych integer
, ale różnica jest bardzo mała i zazwyczaj nie stanowi najmniejszego problemu przy optymalizacji wydajności.
Wielkość pamięci jest bardziej istotna, ale różnica między różnymi typami liczb całkowitych jest nadal bardzo mała i często nieistotna, czasami tracona przez dopełnienie i wyrównanie. Istnieją inne typy danych, które mogą zmarnować znacznie więcej miejsca.
smallint
(int2
) zajmuje 2 bajty na dysku i w pamięci RAM.integer
(int
, int4
) zajmuje 4 bajty na dysku i w pamięci RAM.bigint
(int8
) zajmuje 8 bajtów na dysku i w pamięci RAM.
Szczegóły dotyczące typów liczbowych w Postgresie w instrukcji.
Istnieje wiele innych czynników wpływających na rzeczywistą wielkość pamięci. Musisz wziąć pod uwagę narzut strony i krotki, wyrównanie i dopełnienie, możliwe wartości NULL, indeksowanie ...
Szczegóły:
Istnieje pewien potencjał do optymalizacji, ale zazwyczaj niewiele. Najlepiej skoncentruj się na wyborze odpowiedniego typu danych dla swoich danych i nie martw się o drobne różnice w pamięci i wydajności, chyba że wiesz dokładnie, co robisz.