SQLite:如何减少整数值的字节大小?

时间:2015-03-05 21:07:50

标签: sqlite optimization types integer sqldatatypes

我有一个SQLite表(没有行ID,但可能不相关,没有任何索引)我的行包含以下数据:

  • 2个实际值,其中一个是主键
  • 3个整数< 100
  • 1个整数字段,但目前始终为null

根据http://www.sqlite.org/datatype3.html,整数值可以根据其大小取1,2,3,4,6或8个字节。因此,我希望我的表中的每一行占用大约20个字节。实际上,sqlite3_analyzer为我提供了表格

Average payload per entry......................... 25.65     
Maximum payload per entry......................... 26

介于最小值20和最大值32之间(如果所有整数都以4个字节存储)。是否有可能给DB提供一个"提示"尽可能使用更小的整数类型?或者如何解释这种差异? (我不会考虑它的索引,因为这张表没有。)

类似地,在前一个表中,我有2个实数值+2个小整数,每个条目占用略多于24个字节(这也比我预期的要多)。

另外,没有办法用SQLite以单精度存储浮点数吗?

1 个答案:

答案 0 :(得分:3)

实际的record format有一个整数用于标题大小,每列有一个整数来描述值的类型,以及列值的所有数据。

在这种情况下,我们有:

bytes
1     header size
6     column types
16    two real values
3     three small integers between 2 and 127
0     NULL
--
26