sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Hay alguna diferencia en guardar el mismo valor en diferentes tipos de enteros?

La mayoría de las operaciones son más rápidas para integer simple , pero la diferencia es muy pequeña y, por lo general, la menor de sus preocupaciones al optimizar el rendimiento.

El tamaño de almacenamiento es más relevante, pero la diferencia entre varios tipos de enteros sigue siendo muy pequeña y, a menudo, apenas relevante, a veces se pierde debido al relleno y la alineación. Hay otros tipos de datos que pueden desperdiciar mucho más espacio.

smallint (int2 ) ocupa 2 bytes en disco y en RAM.
integer (int , int4 ) ocupa 4 bytes en disco y en RAM.
bigint (int8 ) ocupa 8 bytes en disco y en RAM.

Detalles para tipos numéricos en Postgres en el manual.

Hay varios otros factores para el tamaño de almacenamiento real. Debe tener en cuenta la sobrecarga de página y tupla, la alineación y el relleno, los posibles valores NULL, la indexación...

Detalles:

Hay cierto potencial para la optimización, pero normalmente no mucho. Mejor concéntrese en elegir un tipo de datos apropiado para sus datos y no se preocupe por diferencias menores en el almacenamiento y el rendimiento, a menos que sepa exactamente lo que está haciendo.