CHAR(0) как хранилище для Boolean

mahoune

Guest
CHAR(0) как хранилище для Boolean

Из документации по MySQL:
CHAR(0) - This is also quite nice when you need a column that only can take 2 values: A CHAR(0), that is not defined as NOT NULL, will occupy only one bit and can take only 2 values: NULL or "".

При том что:

BIT
BOOL
These are synonyms for TINYINT(1).


Что всезнающий All думает по этому поводу? Что меньше места занимает?!
 

AnToXa

prodigy-одаренный ребенок
мне не жалко байт, то вот в запросе я буду получать 0 или 1, а ты из своего char(0)? :)
да. то же самое. но мне придется менше писать и помнить о том, что у меня там за тип такой.
 

su1d

Старожил PHPClubа
CHAR(0) - 1 bit
BIT | BOOL | TINYINT(1) - 1 byte
при использовании CHAR(0) на каждые 1000 записей экономишь всего 875 байт, поэтому большого выигрыша в размере не получишь, а вот в скорости - не исключено, что да. хотя я в этом не уверен: писали, что поля со значениями NULL вроде как обрабатываются помедленнее.
 

Demiurg

Guest
слушайте, вы хотите сказать, что если запись n байт + CHAR(0), то mysqk выделит на каждую n*8+1 бит ??? Что то я сомневаяюсь. Скорее будет выравнивание по байтам ((n+1)*8) если не по слову или по 16 байт.
 

mahoune

Guest
Да действительно, было такое! Я вот тоже думал не париться, просто вдруг на глаза попалось, решил спросить мнение, а то может все так уже давно делают, а я в танке! :)
 
Сверху