0

我的 Android 应用程序使用 SQLCipher 进行数据库加密,根据我的项目要求,我需要将位图字符串存储在本地数据库中,一旦成功上传到服务器,就需要从数据库中删除。但是在这里我遇到了一个非常奇怪的 SQLCipher 问题,即即使在从表中删除所有图像字符串之后,我的应用程序的数据库大小并没有减少,而是增加了。例如,我的数据库的初始大小为 45 KB,表中的 30 个图像字符串大小变为 2.91 MB,并且从表大小中删除 30 个图像后增加到 3.04 MB

但是,当我对普通 SQLite 数据库(即没有 SQLCipher 加密)进行相同的情况下,我得到了预期的结果,即在从表中删除图像后,db size 2.91 减少到 50 KB。

请协助...

4

1 回答 1

1

删除值后使用

db.execSQL("VACUUM");

这背后的原因是,当您从表中删除值时,值会被删除,但它们的引用仍然存在

于 2015-06-10T09:39:58.583 回答