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

标签 sqlite compression

BLOB(或任何其他数据)可以(即时)压缩到 SQLite3 数据库中吗? 我在面向 .net 3.5 的 C# 中使用 System.Data.SQLite。

在我的搜索中,我不断看到像这样的连接字符串...... “数据源=base.db;版本=3;压缩=true;”

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

最佳答案

据我所知,System.Data.SQLite.SQLiteConnection 字符串中的“compress=True”参数没有被考虑在内。

基本上,它没什么用:没有为 .NET System.Data.SQLite 提供内置压缩。

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

  • 使用一些第三方工具,无论是包含其中一个 C 库并基于它重建 System.Data.SQLite:Proprietary SQLite Extensions: SEE, CEROD, ZIPVFS/SQLite Crypt基于 ADO.NET 的商业 ORM Devart 提供了对我刚才提到的加密选项的支持,并且似乎它们可以无缝使用(尽管我个人从未尝试过使用 Devart 那么多)。
  • 围绕 System.Data.SQLite 创建包装器:是否使用有关封装数据的某些 header 转换所有数据,并使用具有 Blob 数据亲和性的某些字节集合插入所有内容。顺便说一下,您还可以同时提供一些额外的加密过程。当然,这将比可用的 C 第三方库慢得多,并且根据您的要求(插入、更新等)可能还不够。 ,删除速度),但至少这是免费(且耗时)的方法。这可以通过特定的 SQLite ORM 来实现,实现起来应该不难,但相当耗时。

关于sqlite - SQLite 数据库中的压缩 .Net C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29936589/

相关文章:

c - 从c中的资源中解压多个文件

objective-c - iOS - SQLite 未更新但准备和步骤已成功执行

c# - 是否可以在 SQLite 查询中参数化表名和列名?

sql - 在 SQLite 中获取数字的 ceil 值

Python Sqlite3 将 BLOB 传递给用户定义的函数给出 None

c++ - LZ4:压缩图像格式的压缩

windows - 解压缩大型 zst 文件

python - 如何使用python压缩字符串并存储在redis中

javascript - Closure compiler advanced - 任何性能影响?

iphone - HTML5 数据库验证表是否存在?