SQLite数据库.netc中的压缩#
BLOB(或任何其他数据)是否可以(动态)压缩到SQLite3数据库中? 我在C#targeting.NET3.5中使用System.Data.SQLite 在我的搜索中,我一直看到这样的连接字符串。。。 “数据源=base.db;版本=3;压缩=true;”SQLite数据库.netc中的压缩#,sqlite,compression,Sqlite,Compression,BLOB(或任何其他数据)是否可以(动态)压缩到SQLite3数据库中? 我在C#targeting.NET3.5中使用System.Data.SQLite 在我的搜索中,我一直看到这样的连接字符串。。。 “数据源=base.db;版本=3;压缩=true;” 但是我找不到关于compress=true的任何信息,我已经将它添加到我的连接字符串中进行测试,并将其作为BLOB数据添加到文件中,但似乎没有压缩,我使用了一个大型文本文件进行了测试,因此不是一个已经压缩的图像或其他文件。据我所知非常有限
但是我找不到关于compress=true的任何信息,我已经将它添加到我的连接字符串中进行测试,并将其作为BLOB数据添加到文件中,但似乎没有压缩,我使用了一个大型文本文件进行了测试,因此不是一个已经压缩的图像或其他文件。据我所知非常有限,“compress=true”未考虑System.Data.SQLite.SQLite连接字符串中的参数 基本上,它是无用的:没有为.NET System.Data.SQLite提供内置压缩 为了给System.Data.SQLite世界带来一些压缩功能,您基本上有两个选项:
- 使用一些第三方工具,包括其中一个C库,以及基于它重建System.Data.SQLite://等。基于ADO.NET的商业ORM Devart提供了对我刚才提到的加密选项的支持,并且似乎可以无缝地使用它们(尽管我个人从未尝试过这么多地使用德瓦特)
- 围绕System.Data.SQLite创建包装器:是否使用一些关于封装数据的标题转换所有数据,并使用具有blob数据关联的字节集合插入所有内容。顺便说一下,您还可以同时提供一些额外的加密过程。当然,这将是(很多)比可用的C第三方库慢,可能还不够,这取决于您的需求(插入、更新、删除速度),但至少这是一种免费(且耗时)的方法。这可以通过特定的SQLite ORM实现,应该不太难实现,但相当耗时