sqlite db中空列的空间消耗

sqlite db中空列的空间消耗,sqlite,Sqlite,假设我的sqlite db中的记录很少使用一个db列(对于其余记录,该值为null),那么这些null列消耗的空间是否与不存在这些列时相同?在我的测试程序中,null值每行消耗一个字节。如果表中的平均行大小超过100字节,那么是的,它与不存在的行大小相当。出于某种原因,在测试中,每行每空列大约有1.2字节,但是是的,+1。我不确定我会把它比作不存在的,除非你说的是一两个专栏。例如,如果有500个这样的列,一百万行将使用500 MB的额外空间,而没有这些列。对于一个超过一百万行的单列,它的差异只有

假设我的sqlite db中的记录很少使用一个db列(对于其余记录,该值为null),那么这些null列消耗的空间是否与不存在这些列时相同?

在我的测试程序中,null值每行消耗一个字节。如果表中的平均行大小超过100字节,那么是的,它与不存在的行大小相当。

出于某种原因,在测试中,每行每空列大约有1.2字节,但是是的,+1。我不确定我会把它比作不存在的,除非你说的是一两个专栏。例如,如果有500个这样的列,一百万行将使用500 MB的额外空间,而没有这些列。对于一个超过一百万行的单列,它的差异只有1MB。只是好奇SQLite是如何将它打包得如此紧凑。。。它如何区分空值和(例如)一个包含在单个字节中的整数,更不用说字段可能包含的所有其他整数大小和其他类型了。我认为它包很小,因为每个值都以其类型作为前缀。在这种情况下,前缀是一种类似于标记联合的字节: