För SQL Server:upp till 8 kolumner av typen BIT
kan lagras i en enda byte, medan varje kolumn av typen CHAR(1)
kommer att ta upp en byte.
Å andra sidan:en BIT
kolumnen kan ha två värden (0 =falskt, 1 =sant) eller inget värde alls (NULL) - medan en CHAR(1)
kan ha vilket teckenvärde som helst (mycket fler möjligheter)
Så egentligen handlar det om:
- behöver du verkligen ett sant/falskt (ja/nej)-fält? Om så är fallet:använd
BIT
- behöver du något med mer än bara två möjliga värden - använd
CHAR(1)
Jag tror inte att det gör någon nämnvärd skillnad, ur prestationssynpunkt – om du inte har tiotusentals kolumner. Sedan, naturligtvis, med BIT
som kan lagra upp till 8 kolumner i en enda byte skulle vara fördelaktigt. Men återigen:för ditt "normala" databasfall, där du har några, ett dussin av dessa kolumner, gör det verkligen ingen stor skillnad. Välj den kolumntyp som passar dina behov - oroa dig inte över prestanda.....