2011-10-27 17 views
11

Si sé que el valor de una columna siempre debe estar en el rango permitido por el tipo de datos smallint, desde el punto de vista de mantenimiento de la integridad de datos, me parece que me interesa almacenar los datos en una columna smallint en lugar de una columna int.smallint vs. int en el rendimiento

Sin embargo, me pregunto si hay algún golpe de rendimiento que se puede pagar mediante el uso de menos bytes?

Respuesta

11

Tipos más pequeños = menos almacenamiento en el disco, lo que conduce a índices más eficientes. Sin embargo, esos aumentos de rendimiento serán mínimos a menos que se trate de un gran volumen de datos; Además, para evitar conversiones implícitas (que pueden compensar las ganancias de rendimiento que ve), deberá asegurarse de que cada vez que haga referencia a esa columna use el tipo correcto (incluidas las comparaciones con los parámetros, etc.).

Probablemente un lavado en ambos sentidos.

2

Como Stuart menciona, espero que las diferencias de rendimiento y almacenamiento sean bastante insignificantes.

También vale la pena considerar el "dominio" que desea modelar con el tipo dado. Si smallint modela con mayor precisión el dominio de los datos, vale la pena hacerlo explícito, incluso si no le proporciona una mejora notable en el rendimiento.