За SQL Server:до 8 колони от тип BIT
може да се съхранява в един байт, докато всяка колона от тип CHAR(1)
ще заеме един байт.
От друга страна:BIT
колоната може да има две стойности (0 =false, 1 =вярно) или изобщо да няма стойност (NULL) - докато CHAR(1)
може да има всякаква стойност на символа (много повече възможности)
Така че наистина, всичко се свежда до:
- наистина ли се нуждаете от поле true/false (да/не)? Ако е така:използвайте
BIT
- Имате ли нужда от нещо с повече от само две възможни стойности - използвайте
CHAR(1)
Не мисля, че има съществена разлика от гледна точка на производителността - освен ако нямате десетки хиляди колони. След това, разбира се, с помощта на BIT
който може да съхранява до 8 колони в един байт би било полезно. Но отново:за вашия "нормален" случай на база данни, където имате няколко, дузина от тези колони, това наистина няма голяма разлика. Изберете типа колона, който отговаря на вашите нужди - не се тревожете прекалено за представянето.....