Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite数据库.netc中的压缩#_Sqlite_Compression - Fatal编程技术网

SQLite数据库.netc中的压缩#

SQLite数据库.netc中的压缩#,sqlite,compression,Sqlite,Compression,BLOB(或任何其他数据)是否可以(动态)压缩到SQLite3数据库中? 我在C#targeting.NET3.5中使用System.Data.SQLite 在我的搜索中,我一直看到这样的连接字符串。。。 “数据源=base.db;版本=3;压缩=true;” 但是我找不到关于compress=true的任何信息,我已经将它添加到我的连接字符串中进行测试,并将其作为BLOB数据添加到文件中,但似乎没有压缩,我使用了一个大型文本文件进行了测试,因此不是一个已经压缩的图像或其他文件。据我所知非常有限

BLOB(或任何其他数据)是否可以(动态)压缩到SQLite3数据库中? 我在C#targeting.NET3.5中使用System.Data.SQLite

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


但是我找不到关于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实现,应该不太难实现,但相当耗时

谢谢,这是一个非常全面的答案,我非常感谢。