我有一项服务可以在应用程序的 SQLite DB 中创建记录、处理数据并从 SQLite DB 中删除记录。
我发现 SQLite 数据库随着时间的推移(可能是一周)而增长,尽管其中的记录数量保持相当稳定。
问题 在不增加数据库的情况下添加和删除记录的最佳做法是什么?
要插入我使用的记录:
result = mDB.insert(table, null, kvpairs);
要删除我使用的记录:
result = mDB.delete(table, where, null);
参考
我有一项服务可以在应用程序的 SQLite DB 中创建记录、处理数据并从 SQLite DB 中删除记录。
我发现 SQLite 数据库随着时间的推移(可能是一周)而增长,尽管其中的记录数量保持相当稳定。
问题 在不增加数据库的情况下添加和删除记录的最佳做法是什么?
要插入我使用的记录:
result = mDB.insert(table, null, kvpairs);
要删除我使用的记录:
result = mDB.delete(table, where, null);
参考
数据库中的空闲页面将被重用,因此增长不会无限。
您可以尝试就地更新记录,但如果您无法将旧记录映射到新记录或某些值更改了它们的大小,这将无济于事。
尝试定期运行VACUUM和/或启用PRAGMA auto_vacuum。