Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL:Was ist besser ein Bit oder ein Zeichen(1)

Für SQL Server:bis zu 8 Spalten vom Typ BIT kann in einem einzelnen Byte gespeichert werden, während jede Spalte vom Typ CHAR(1) ist nimmt ein Byte ein.

Andererseits:ein BIT Spalte kann zwei Werte haben (0 =falsch, 1 =wahr) oder überhaupt keinen Wert (NULL) - während ein CHAR(1) kann jeden Zeichenwert haben (viel mehr Möglichkeiten)

Es kommt also wirklich darauf an:

  • Brauchen Sie wirklich ein Wahr/Falsch-Feld (Ja/Nein)? Wenn ja:Verwenden Sie BIT
  • brauchen Sie etwas mit mehr als nur zwei möglichen Werten - verwenden Sie CHAR(1)

Ich glaube nicht, dass es aus Sicht der Leistung einen signifikanten Unterschied macht - es sei denn, Sie haben Zehntausende von Spalten. Dann natürlich mit BIT die bis zu 8 Spalten in einem einzigen Byte speichern kann, wäre von Vorteil. Aber noch einmal:Für Ihren "normalen" Datenbankfall, wo Sie ein paar, ein Dutzend dieser Spalten haben, macht es wirklich keinen großen Unterschied. Wählen Sie den Spaltentyp, der Ihren Anforderungen entspricht - Sorgen Sie sich nicht zu sehr um die Leistung.....