在sqlite数据库中插入记录不会改变其大小

时间:2016-05-08 22:24:02

标签: sqlite

我有一个SQLite数据库,其中插入了大约100条记录。我磁盘上文件的大小约为65 KB。在插入数据之前和之后都是一样的。我将文件压缩为.tar.7z格式。随着我不断添加数据,数据库文件的大小保持不变,但是当我压缩它时,我看到存档文件的大小在增长。为什么会这样?有人可以解释我观察到的这种行为的原因。

1 个答案:

答案 0 :(得分:2)

  • SQLite将数据组织到"页面"
  • 简而言之,页面是磁盘上的存储块;它并不只是将一个数据写入磁盘,而是写一整页
  • SQLite创建/分配页面,然后在写入时将其填满
  • ...这就解释了65k;因为sqlite会创建空白页面,并在添加数据时填充数据
  • 至于7z:"空白"是超级可压缩的。
  • 因为字符串" 2万零"和7zip 方式比我写英文更有效率,所以可以轻松压缩2万个零
  • Wheras一旦你做了它就会变成一千个零,然后是五个,六个,九个,十二个,三个和一个,以及另外一千个零和......压缩效率低的方式