Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Perché dovrei usare int invece di un byte o short in C#

Per quanto riguarda le prestazioni, un int è più veloce in quasi tutti i casi. La CPU è progettata per funzionare in modo efficiente con valori a 32 bit.

I valori più brevi sono complicati da gestire. Per leggere un singolo byte, ad esempio, la CPU deve leggere il blocco a 32 bit che lo contiene e quindi mascherare i 24 bit superiori.

Per scrivere un byte, deve leggere il blocco a 32 bit di destinazione, sovrascrivere gli 8 bit inferiori con il valore di byte desiderato e riscrivere l'intero blocco a 32 bit.

Per quanto riguarda lo spazio, ovviamente, risparmi alcuni byte utilizzando tipi di dati più piccoli. Quindi, se stai costruendo una tabella con pochi milioni di righe, vale la pena considerare tipi di dati più brevi. (E lo stesso potrebbe essere un buon motivo per cui dovresti usare tipi di dati più piccoli nel tuo database)

E per quanto riguarda la correttezza, un int non trabocca facilmente. E se pensi il tuo valore si adatterà all'interno di un byte e poi in futuro alcune modifiche dall'aspetto innocuo al codice significano che al suo interno vengono memorizzati valori più grandi?

Questi sono alcuni dei motivi per cui int dovrebbe essere il tipo di dati predefinito per tutti i dati integrali. Utilizzare byte solo se si desidera effettivamente memorizzare i byte della macchina. Usa gli short solo se hai a che fare con un formato di file o un protocollo o simili che specificano effettivamente valori interi a 16 bit. Se hai a che fare solo con numeri interi in generale, rendili interi.