Pro SQL Server:až 8 sloupců typu BIT
lze uložit do jednoho bajtu, přičemž každý sloupec typu CHAR(1)
zabere jeden bajt.
Na druhou stranu:BIT
sloupec může mít dvě hodnoty (0 =nepravda, 1 =pravda) nebo žádnou hodnotu (NULL) – zatímco CHAR(1)
může mít libovolnou hodnotu znaku (mnohem více možností)
Takže opravdu jde o:
- opravdu potřebujete pole true/false (ano/ne)? Pokud ano:použijte
BIT
- potřebujete něco s více než dvěma možnými hodnotami - použijte
CHAR(1)
Nemyslím si, že to dělá nějaký významný rozdíl, z hlediska výkonu - pokud nemáte desítky tisíc sloupců. Pak samozřejmě pomocí BIT
který může uložit až 8 sloupců v jednom byte, by bylo prospěšné. Ale znovu:pro váš "normální" databázový případ, kde těch sloupců máte pár, tucet, to opravdu není velký rozdíl. Vyberte typ sloupce, který vyhovuje vašim potřebám - nebojte se o výkon......