数据库只有一个表,一个列,一个值大小>超过200mb

时间:2016-03-14 21:47:52

标签: sqlite

我一直在玩数据库,我导入了超过百万列,最后用功能玩了我只选了一个值,删除了其余部分,我的数据库大小超过200mb。我在sqlite3中这样做。如何减小它的大小?

1 个答案:

答案 0 :(得分:1)

您的数据库可能仍在保留以前记录中的空间。

这基本上是同一个问题:

Why does clearing an SQLite database not reduce its size?

接受的答案:

当从数据库中删除对象(表,索引,触发器或视图)时,它会留下空白空间。下次将新信息添加到数据库时,将重用此空白空间。但与此同时,数据库文件可能比严格必要的更大。此外,频繁的插入,更新和删除可能会导致数据库中的信息碎片化 - 在整个数据库文件中被刮掉,而不是在一个地方聚集在一起。

VACUUM命令通过将其内容复制到临时数据库文件并从副本重新加载原始数据库文件来清除主数据库。这样可以消除空闲页面,使表格数据保持连续,并以其他方式清理数据库文件结构。

编辑:您可能想要研究pragma命令' auto_vacuum'如果你希望定期这样做。它会保持你的文件大小,但有一些优点和缺点。在生产环境中最好保留比您需要的更多空间,因为这样可以降低服务器上磁盘空间不足的风险。