SQLite:如何减少整数值的字节大小?
Posted
技术标签:
【中文标题】SQLite:如何减少整数值的字节大小?【英文标题】:SQLite: How to reduce byte size of integer values? 【发布时间】:2015-05-07 09:43:10 【问题描述】:我有一个 SQLite 表(没有行 ID,但这可能无关紧要,并且没有任何索引),其中我的行包含以下数据:
2 个实数值,其中一个是主键 3 个整数 还有 1 个整数字段,但目前始终为空根据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 个字节存储)。是否有可能给数据库一个“提示”以尽可能使用更小的整数类型?或者如何解释这种差异? (我不认为它是索引,因为该表没有索引。)
同样,在上一张表中,我有 2 个实数值 + 2 个小整数,每个条目占用的字节数略多于 24 个字节(这也超出了我的预期)。
另外,没有办法用 SQLite 以单精度存储浮点数吗?
【问题讨论】:
【参考方案1】:实际的record format有一个整数表示表头大小,每列一个整数表示值的类型,列值的所有数据。
在这种情况下,我们有:
bytes
1 header size
6 column types
16 two real values
3 three small integers between 2 and 127
0 NULL
--
26
【讨论】:
这就解释了。谢谢!以上是关于SQLite:如何减少整数值的字节大小?的主要内容,如果未能解决你的问题,请参考以下文章