sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué debo usar int en lugar de byte o short en C#?

En cuanto al rendimiento, un int es más rápido en casi todos los casos. La CPU está diseñada para funcionar de manera eficiente con valores de 32 bits.

Los valores más cortos son complicados de manejar. Para leer un solo byte, por ejemplo, la CPU tiene que leer el bloque de 32 bits que lo contiene y luego enmascarar los 24 bits superiores.

Para escribir un byte, debe leer el bloque de 32 bits de destino, sobrescribir los 8 bits inferiores con el valor de byte deseado y volver a escribir todo el bloque de 32 bits.

En cuanto al espacio, por supuesto, ahorra unos pocos bytes al usar tipos de datos más pequeños. Entonces, si está creando una tabla con unos pocos millones de filas, entonces puede valer la pena considerar tipos de datos más cortos. (Y la misma podría ser una buena razón por la que debería usar tipos de datos más pequeños en su base de datos)

Y en cuanto a la corrección, un int no se desborda fácilmente. ¿Qué pasa si piensas su valor va a caber dentro de un byte, y luego, en algún momento en el futuro, algún cambio aparentemente inofensivo en el código significa que se almacenarán valores más grandes en él?

Esas son algunas de las razones por las que int debe ser su tipo de datos predeterminado para todos los datos integrales. Solo use byte si realmente desea almacenar bytes de máquina. Solo use shorts si está tratando con un formato de archivo o protocolo o similar que en realidad especifica valores enteros de 16 bits. Si solo está tratando con números enteros en general, conviértalos en enteros.