Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

When you need many booleans on a table, use an integer with bitwise and/or to record them as powers of 2.

I have done this many times. Function-based indexes are necessary if they must be searched.



Why would you do that? To save some bytes in storage?


The largest table where I've done this had over 50 of these booleans.

That's one 64-bit number, or 50 different columns.


But if you do the function based index, you actually increase the stored size, right? Seems like a microoptimization to me that I would only do if I really have to.


For the searched column only?

If you are greatly concerned, SQL Server and the Sybase database from which it emerged have a native boolean data type.

Another benefit of this scheme is that adding another boolean means using the next power of 2 in the existing integer, assuming room remains. No new column necessary.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: