程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sqlite3是否压缩数据?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决sqlite3是否压缩数据??

开发过程中遇到sqlite3是否压缩数据?的问题如何解决?下面主要结合日常开发的经验,给出你关于sqlite3是否压缩数据?的解决方法建议,希望对你解决sqlite3是否压缩数据?有所启发或帮助;

sqlite没有运行压缩算法,但是它将数据存储在二进制文件而不是文本文件中。这意味着可以更有效地存储数据,例如使用32位(4字节)数字表示10,000,000而不是将其存储为8字节的文本(如果文件是unicode,则存储更多)。

如果您有兴趣,这里是有关SQL数据库文件格式的更多详细信息。

那有意义吗?

解决方法

我有一个7.4Gbcsv文件。使用python脚本将其转换为sqlite数据库后,输出数据库为4.7Gb,约为原始大小的60%。

CSV大约有150,000,000行。它具有标题:

tkey,ipaddr,healthtime,numconnections,policystatus,activityflag

每行看起来像

261846,172.10.28.15,2012-02-03 16:15:00,22,1,1

该脚本使用运行状况时间将数据分成表192个表

当我第一次看到这些数字时,我以为我在某个地方犯了错误。从仅写入运行状况时间192次而不是150,000次的附加效率中,我期望文件大小减少多少?

编辑: 我发布此后,我就意识到了答案。我要删除大约40%的字符串,因此减小了40%的大小。

编辑2 让我们计算纯文本之间的大小差异:

"261846,1"

和数据库条目:

db(261846,'172.10.28.15',1)

首先,我们将纯文本表示形式从46个字符减少到26个字符。

其余字符为:

"261846,1"

或26个字节。如果每个整数需要存储在32位(4个字节)中,则我们有:

12个字节(ipaddr)+ 4个字节* 4个(整数字段)= 28个字节。

这样看来,转换为整数会使存储效率略有降低,而我所有的收获都来自减少每行中存储的字符数。

大佬总结

以上是大佬教程为你收集整理的sqlite3是否压缩数据?全部内容,希望文章能够帮你解决sqlite3是否压缩数据?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。