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

SQL:cosa è meglio un bit o un char(1)

Per SQL Server:fino a 8 colonne di tipo BIT può essere memorizzato all'interno di un singolo byte, mentre ogni colonna di tipo CHAR(1) occuperà un byte.

D'altra parte:un BIT la colonna può avere due valori (0 =false, 1 =true) o nessun valore (NULL) - mentre un CHAR(1) può avere qualsiasi valore di carattere (molte più possibilità)

Quindi, in realtà, si riduce a:

  • hai davvero bisogno di un campo vero/falso (sì/no)? Se sì:usa BIT
  • hai bisogno di qualcosa con più di due valori possibili? usa CHAR(1)

Non penso che faccia alcuna differenza significativa, dal punto di vista delle prestazioni, a meno che tu non abbia decine di migliaia di colonne. Poi, ovviamente, usando BIT che può memorizzare fino a 8 colonne in un singolo byte sarebbe vantaggioso. Ma ancora:per il tuo caso di database "normale", dove hai poche, una dozzina di quelle colonne, non fa davvero una grande differenza. Scegli il tipo di colonna che si adatta alle tue esigenze - non preoccuparti troppo delle prestazioni.....