我对AR和Sqlite有点新鲜。我正在使用大数据集,并努力找出优化数据库速度和大小的优秀做法。
EG。我在列中存储了一个字节的整数,它有助于将列声明为:
table.integer :field, limit: 1
这有助于sqlite节省空间吗?
答案 0 :(得分:1)
<强> 2。存储类和数据类型
存储在SQLite数据库中(或由数据库引擎操纵)的每个值都具有以下存储类之一:
- [...]
- 的 INTEGER 即可。该值是有符号整数,存储为1,2,3,4,6或8个字节,具体取决于值的大小。
- [...]
因此,SQLite中值的存储要求取决于值本身而不是列类型。 SQLite驱动程序将完全忽略您的:limit
选项,同样,字符串也会忽略:limit
,因为SQLite没有char(n)
或varchar(n)
类型,它只是text
。
SQLite类型系统相当松散,阅读Datatypes in SQLite上的整个文档部分是个不错的主意。