我正在使用 C# 编写一个程序,该程序一次处理多个数据库文件,以创建一种用户可以稍后选择压缩和存档的缓存。我正在为这些数据库使用 SQLite3。但是,当谈到压缩时,我注意到对于 SQLite 连接字符串,有一个可选的压缩参数可以启用。另一种选择是通过 GZip 流运行所有数据库文件。最后一个选择是两者都做。
我想知道的是,平均而言,压缩后哪个选项会导致最小的磁盘使用量?我认为 SQLite 可能比我更了解如何压缩它自己的数据库文件,但是它是在每个文件的基础上工作的。GZip 可以利用跨文件的数据来更好地压缩文件,但是如果 SQLite 数据库已经被压缩,它可能会减少 GZip 流可以用来产生较小输出的跨文件数据。