能够控制 INTEGER 类型的字节大小

ins*_*lly 4 sqlite

我试图使 SQLite 表尽可能小。我的表将只包含 1 个字节的无符号整数。但是,不清楚当我创建一个新表时,创建的表的底层结构是什么。例如:

 CREATE TABLE test (SmallNumbers INTEGER)
Run Code Online (Sandbox Code Playgroud)

结果 SmallNumbers 字段的大小是否为 1、2、4...8 个字节?

如果我使用上述命令创建 100 万条包含数字“1”的记录来创建表,那么生成的 .db 文件是否会比插入 100 万条全部包含 412,321,294,967,295 值的记录小?

我如何确保这样的表尽可能小,因为我将 1 个字节的无符号整数插入表中(关于磁盘空间)?

Mik*_* W. 6

每个 SQLite 文档:https : //www.sqlite.org/datatype3.html

存储在 SQLite 数据库中(或由数据库引擎操作)的每个值都具有以下存储类之一:

整数。该值是一个有符号整数,根据值的大小存储在 1、2、3、4、6 或 8 个字节中。

您无需执行任何操作即可确保表尽可能小。SQLite 将逐个值地选择可以存储您提供的值的最小存储类。

  • 谢谢,但在发布此问题之前,我已经多次阅读您提供的 URL。该 URL 没有回答我的问题。 (2认同)