I have checked different column-oriented database systems such as InfiniDB, InfobrightDB and MonetDB. None of them开发者_StackOverflow support unsigned integers as a data storage type. Why? One solution is to store all 4 byte unsigned integers into 8 byte signed integers (Link), however I think it would waste too much space. Is there any open-source column oriented database system that support unsigned integers? I already checked this (Link) with no luck. Thank you very much for your time.
Emer
I found one answer on the "How to Migrate from SQL Server" (page4) at Infobright.org:
UNSIGNED INTEGERS – Unsigned integers have historically been selected by DBAs and database designers to provide capacity for larger maximum values for a given integer field than is possible with a signed integer. Where negative values do not exist in the data, or are not allowed, the approach of selecting unsigned integers allowed accommodation of larger values while selecting smaller data types in traditional row-oriented technologies. In Infobright’s case, when unneeded bytes exist for a particular integer value, they are “squeezed” out by the inherent compression algorithms. For this reason, Infobright recommends selecting the next-larger integer data type – for example, BIGINT over INTEGER, or MEDIUMINT over SMALLINT – such that the maximum column value can still be accommodated in the chosen data type. Infobright doesn’t suffer the wasted space consequences of “over- typing” one’s columns.
MySQL supports unsigned integers as a column type
精彩评论