On Sun, May 10, 2009 at 10:12 PM, Moon's Father
<yueliangdao0...@gmail.com> wrote:
>  Hi.
>   MySQL only has one datatype called bit, but its smallest storage is one
> byte.
> How to save a bit on disk, but not a byte?

In some cases, CHAR(0) NULL can actually use one bit on disk.  You
either store the empty string '', or you leave the column NULL.  If it
is NULL, there is one bit in a bitmask that gets set.  If it stores
the empty string, it uses no space, and the NULL bit is unset.

This is a stupid hack that is probably not a good idea in the general case.

Of course, the bitmap of NULL-ness is larger than one bit, so it makes
no sense to do this if there is only one such column in the table.
And in that case, you might be better off using an integer and packing
many bits together into it.

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to