c# - 尽管删除数据,litedb数据库文件大小不断增加
问题描述
有两种应用,
- 一个控制台应用程序不断将数据写入 litedb 数据库。
- 另一个控制台应用程序读取数据并删除读取的任何内容
var liteCollection = _liteDb.GetCollection<SomeClass>("ColName");
var data = liteCollection.FindAll().ToList();
//prepare list if id's and delete
var ids = data .Select(l => l.Id).ToList();
var count = liteCollection.DeleteMany(rp => ids.Contains(rp.Id));
一切看起来都很好,但是数据库文件的大小一直在增长,而且根本没有减少。如何收缩数据库?
我知道一些shrink
命令,但是如何使用它呢?liteDb.Shrink()
我没有看到且不可用的选项。
- 是否有任何 API 可用于缩小数据库以及如何使用它?
- 我在每 5 分钟调用一次的循环中运行的上述读取和删除代码,我可以在删除后立即使用 Shrink 吗?
- 我的谓词是否适合
DeleteMany
或是否还有其他方法可以做到这一点?
解决方案
推荐阅读
- ios - 如何在 podspec 文件中定义快速版本的 spec.dependency "xxx", "~> 1.0"
- php - PHP MySQL If else 语句
- r - R microbenching loop vs vector vs parallel正在产生相反的结果
- sql-server - SQL Server 告诉我必须声明标量变量
- c - C语言中的套接字编程服务器
- python - 用户输入后如何重新启动while循环
- c - 在 C 中打印出二维数组的子矩阵时结果不正确
- node.js - 如何正确启用节点 express.Router 的 CORS 预检选项请求?
- list - Prolog谓词帮助:从列表中删除N次
- python - 一个人如何做到这一点,所以这个个人助理总是在后台并且还使用唤醒工作?