For SQL Server:op til 8 kolonner af typen BIT
kan gemmes inde i en enkelt byte, mens hver kolonne af typen CHAR(1)
optager en byte.
På den anden side:en BIT
kolonne kan have to værdier (0 =falsk, 1 =sand) eller slet ingen værdi (NULL) - mens en CHAR(1)
kan have en hvilken som helst tegnværdi (meget flere muligheder)
Så egentlig handler det om:
- har du virkelig brug for et sandt/falsk (ja/nej) felt? Hvis ja:brug
BIT
- har du brug for noget med mere end blot to mulige værdier - brug
CHAR(1)
Jeg tror ikke, det gør nogen væsentlig forskel, set ud fra et præstationsmæssigt synspunkt – medmindre du har titusindvis af kolonner. Så selvfølgelig ved at bruge BIT
som kan gemme op til 8 kolonner i en enkelt byte ville være en fordel. Men igen:for dit "normale" databasetilfælde, hvor du har nogle få, et dusin af disse kolonner, gør det virkelig ikke den store forskel. Vælg den kolonnetype, der passer til dine behov - vær ikke bekymret for ydeevne.....