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/