【发布时间】:2018-02-27 12:19:19
【问题描述】:
我有一个大数据(一些 TB),我必须保存在数据库中。
我有一些可以少量保存的列(列 A 有 20 个唯一值 1...20 ,列 B 有 10 个值等等...)。
有没有办法将此数据保存在仅 4 位、5 位...(按需要)的数据库中?不像 tiny int 或类似的 1 字节。
如果那样的话。我应该使用什么数据库引擎(针对这种特定情况)?
【问题讨论】:
-
对于 Oracle,我认为不是。如果您创建一个 CHARACTER 数据类型列,您可以指定 CHAR 或 BYTE,没有什么比这更小了。
-
不,你不能。至少在我知道的操作系统上至少可以将 8 位作为一个单元处理。
-
为什么要保存在不到一个字节的范围内?不管它在你看来如何,它至少会保存在系统中的一个字节中。如果您担心数据的大小并且您已经拥有数 TB 的数据,那么与担心包含 4 位数据的单个列相比,似乎有更有效的地方来控制大小。
-
不,您不能将值 1 到 20 存储在 4 位中。
-
@a_horse_with_no_name 当然,我指的是存储,而不是 CPU 寄存器处理。就空间使用而言,64 位系统上的存储仍然可以减少到字节。如果将记录中的更多字段打包在位字段中,它只会更少。