innodb tablaban char vagy tinyint oszlop default kerdes

Szoval van egy rengeteg rekordot tartalmazo innodb tablam, amiben egy boolean erteket is kene hatekonyan tarolnom, az esetek 80-90%-aban false (esetleg '0' vagy 0) az ertek. A kerdes az, hogy jobb-e az, ha megadom a default false (vagy 0, vagy '0') erteket az uj oszlop definiciojanal, vagy 1 byte-os oszlop eseten tok mindegy?

Azaz x tinyint default 0 vagy x char(1) default 'n' esetleg x tinyint vagy x char(1)

Hozzászólások

Szerintem a sorok tárolása szempontjából mindegy, csak insertnek számít, hogy van-e default vagy nincs. Én meg úgy általában nem szeretem a default értékeket és ezt szeretem egy ORM-re vagy hasonlóra bízni.

--

fixme, de kereseskor a tinyint egy "and" muvelet, mig egy string osszehasonlito kicsit bonyolultabb.
bar ez nem valasz a kerdesedre :)

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Maga a default szerintem tök mindegy, ami szerintem fontosabb, hogy not null legyen. Ekkor viszont megkövetel (vagy automatán beállít) egy default-ot.
Amúgy unicode és egyéb okok miatt a char(1) helyett tinyint(1)-et választanék a fentiek közül, egyébként van bit típus is.

Szóval szerintem tinyint(1) not null default 0