SQLite 数据库中的压缩 .Net C#

Compression in SQLite database .Net C#

能否将 BLOB(或任何其他数据)压缩(即时)到 SQLite3 数据库中? 我在 C# 中使用 System.Data.SQLite 目标 .net 3.5。

在我的搜索中,我一直看到这样的连接字符串... "datasource=base.db;version=3;compress=true;"

但是我找不到关于 compress=true 的信息,我已经将它添加到我的连接字符串中进行测试,并将文件添加为 BLOB 数据,但似乎没有压缩,我已经用例如大文本进行了测试文件,因此不是已经压缩的图像或其他文件。

据我所知,未考虑 System.Data.SQLite.SQLiteConnection 字符串中的 "compress=True" 参数。

基本上,它有点无用:没有为 .NET System.Data.SQLite.

提供 built-in 压缩

为了给 System.Data.SQLite 世界带来一些压缩功能,您基本上有两个选择:

  • 使用一些第三方工具,是否通过包含其中一个 C 库并基于它重建 System.Data.SQLite:Proprietary SQLite Extensions: SEE, CEROD, ZIPVFS / SQLite Crypt / 等。基于 [=32= 的商业 ORM Devart ] 提供对我刚才提到的加密选项的支持,并且似乎可以无缝地使用它们(尽管我个人从未尝试过那么多地使用 Devart)。
  • 围绕 System.Data.SQLite 创建一个包装器:是否使用一些 headers 的封装数据转换所有数据,并使用一些 collection 字节和 blob 数据亲和力插入所有数据.您还可以同时提供一些额外的加密 process.Of 当然,这将比可用的 C third-party 库慢(很多),并且根据您的要求(插入,更新,..,删除速度),但至少这是免费的(和 time-consuming)方法。这可以通过特定的 SQLite ORM 来实现,应该不难实现但相当 time-consuming.