Dla SQL Server:do 8 kolumn typu BIT
mogą być przechowywane w jednym bajcie, podczas gdy każda kolumna typu CHAR(1)
zajmie jeden bajt.
Z drugiej strony:BIT
kolumna może mieć dwie wartości (0 =fałsz, 1 =prawda) lub w ogóle nie mieć wartości (NULL) - podczas gdy CHAR(1)
może mieć dowolną wartość znakową (dużo więcej możliwości)
Tak naprawdę sprowadza się to do:
- czy naprawdę potrzebujesz pola prawda/fałsz (tak/nie)? Jeśli tak:użyj
BIT
- czy potrzebujesz czegoś z więcej niż tylko dwiema możliwymi wartościami - użyj
CHAR(1)
Nie sądzę, aby miało to jakiekolwiek znaczenie z punktu widzenia wydajności — chyba że masz dziesiątki tysięcy kolumn. Potem oczywiście za pomocą BIT
które mogą przechowywać do 8 kolumn w jednym bajcie, byłoby korzystne. Ale znowu:w przypadku „normalnej” bazy danych, w której masz kilka, kilkanaście takich kolumn, to naprawdę nie ma większego znaczenia. Wybierz typ kolumny, który odpowiada Twoim potrzebom - nie przejmuj się zbytnio wydajnością...