PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

C'è qualche differenza nel salvare lo stesso valore in diversi tipi interi?

La maggior parte delle operazioni è più veloce per un semplice integer , ma la differenza è molto piccola e in genere è l'ultima delle tue preoccupazioni durante l'ottimizzazione delle prestazioni.

La dimensione di archiviazione è più rilevante, ma la differenza tra i vari tipi di numeri interi è ancora molto piccola e spesso poco rilevante, a volte persa a causa del riempimento e dell'allineamento. Esistono altri tipi di dati che possono sprecare molto più spazio.

smallint (int2 ) occupa 2 byte su disco e nella RAM.
integer (int , int4 ) occupa 4 byte su disco e RAM.
bigint (int8 ) occupa 8 byte su disco e in RAM.

Dettagli per i tipi numerici in Postgres nel manuale.

Esistono vari altri fattori per le dimensioni effettive dello spazio di archiviazione. Devi considerare l'overhead di pagina e tupla, allineamento e riempimento, possibili valori NULL, indicizzazione ...

Dettagli:

C'è del potenziale per l'ottimizzazione, ma in genere non molto. Concentrati al meglio sulla scelta di un tipo di dati appropriato per i tuoi dati e non preoccuparti di piccole differenze di archiviazione e prestazioni, a meno che tu non sappia esattamente cosa stai facendo.