Die meisten Operationen sind am schnellsten für einfache integer
, aber der Unterschied ist sehr gering und normalerweise das geringste Problem bei der Leistungsoptimierung.
Die Speichergröße ist relevanter, aber der Unterschied zwischen verschiedenen Integer-Typen ist immer noch sehr gering und oft kaum relevant, geht manchmal durch Auffüllen und Ausrichten verloren. Es gibt andere Datentypen, die viel mehr Platz verschwenden können.
smallint
(int2
) belegt 2 Bytes auf der Festplatte und im RAM.integer
(int
, int4
) belegt 4 Bytes auf der Festplatte und im RAM.bigint
(int8
) belegt 8 Bytes auf der Festplatte und im RAM.
Details zu numerischen Typen in Postgres im Handbuch.
Es gibt verschiedene andere Faktoren für die tatsächliche Speichergröße. Sie müssen Seiten- und Tupel-Overhead, Alignment und Padding, mögliche NULL-Werte, Indizierung ...
berücksichtigenEinzelheiten:
- Größe einer PostgreSQL-Tabellenzeile messen
- Berechnung und Einsparung von Speicherplatz in PostgreSQL
Es gibt ein gewisses Optimierungspotenzial, aber normalerweise nicht viel. Konzentrieren Sie sich am besten auf die Auswahl eines geeigneten Datentyps für Ihre Daten und machen Sie sich keine Gedanken über geringfügige Unterschiede in Speicher und Leistung, es sei denn, Sie wissen genau, was Sie tun.