Voor SQL Server:maximaal 8 kolommen van het type BIT
kan worden opgeslagen in een enkele byte, terwijl elke kolom van het type CHAR(1)
neemt één byte in beslag.
Aan de andere kant:een BIT
kolom kan twee waarden hebben (0 =false, 1 =true) of helemaal geen waarde (NULL) - terwijl een CHAR(1)
kan elke tekenwaarde hebben (veel meer mogelijkheden)
Dus eigenlijk komt het neer op:
- heb je echt een waar/onwaar (ja/nee) veld nodig? Zo ja:gebruik
BIT
- heb je iets nodig met meer dan slechts twee mogelijke waarden - gebruik
CHAR(1)
Ik denk niet dat het een significant verschil maakt, vanuit het oogpunt van prestaties - tenzij je tienduizenden kolommen hebt. Dan natuurlijk, met behulp van BIT
die tot 8 kolommen in een enkele byte kan opslaan, zou gunstig zijn. Maar nogmaals:voor je "normale" database-geval, waar je een paar, een dozijn van die kolommen hebt, maakt het echt geen groot verschil. Kies het kolomtype dat aan uw behoeften voldoet - maak je niet al te veel zorgen over de prestaties.....