如何压缩小字符串

2023-11-21

我有一个充满大量 URL 的 sqlite 数据库,它占用了大量的磁盘空间,并且访问它会导致许多磁盘寻道并且速度很慢。平均 URL 路径长度为 97 字节(主机名重复很多,因此我将它们移动到外键表中)。有什么好的方法可以压缩它们吗?大多数压缩算法都能很好地处理大文档,而不是平均小于 100 字节的“文档”,但即使减少 20% 也非常有用。有什么可行的压缩算法吗?不一定是标准的东西。


使用压缩算法但使用共享字典。

我之前做过类似的事情,使用 LZC/LZW 算法,如 Unix 压缩命令所使用的那样。

使用短字符串获得良好压缩的技巧是使用由要压缩的 URL 的标准样本组成的字典。

你应该很容易得到20%。

编辑:LZC 是 LZW 的变体。您只需要 LZW,因为您只需要一个静态字典。 LZC 添加了对字典/表满时重置的支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何压缩小字符串 的相关文章

  • 我应该保留远程数据库的本地副本吗?

    我正在开发一个应用程序 基本上允许人们创建 加入和管理其他人的群组 群组内的人也可以互相发送消息 我一直在想哪条路会更好 保留包含所有信息的远程数据库 包括发送给用户和从用户发送的消息 并让应用程序在每次需要信息时查询服务器 甚至是它以前见
  • Mac 上的 GeoDjango 和 Spatialite:C 扩展加载问题

    我正在关注GeoDjango 教程 https docs djangoproject com en dev ref contrib gis tutorial 在我的家用计算机 运行 OSX 10 8 2 的 Mac Mini 上为我的项目设
  • 快速搜索压缩文本文件

    我需要能够在大量压缩文件 txt 中搜索文本 压缩可能会改变为其他东西 甚至成为专有的 我想避免解压所有文件并压缩 编码 搜索字符串并在压缩文件中搜索 这应该可以通过对所有文件使用相同的码本使用霍夫曼压缩来实现 我不想重新发明轮子 所以 任
  • 光标返回错误值 - sqlite - Android

    我正在开发一个短信应用程序 我正在尝试从每次对话中获取最后一条短信 这是我的 SQL 语句 SELECT MAX smsTIMESTAMP AS smsTIMESTAMP id smsID smsCONID smsMSG smsNUM sm
  • 锁定 SQLite 数据库以从 C# 读取

    我的项目有一个 C dll 其中在 Sqllite 中创建一个数据库 共享拒绝 无 这个 dll 会将数据插入到数据库中 我有一个 C exe 它必须访问数据库并显示它 显示需要异步完成 在启动与 sqlitedb 的连接时 有什么方法可以
  • tar 和 zip 有什么区别? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 tar 和 zip 有什么区别 每个的用例是什么 tar其本身只是将文件捆绑在一起 结果称为tarball 尽管zip也应用压缩 通常你使用gzip随
  • iPhone SQLite页面缓存不断增长

    I use sqlite数据库用于存储 还有许多数据库事务 我的问题是 sqlite 页面缓存的内存使用量快速增长 在instruments我可以找到这条线 Graph Category Live Bytes Living Transien
  • 使用 Python 3 动态插入到 sqlite

    我想使用 sqlite 写入多个表 但我不想提前手动指定查询 有数十种可能的排列 例如 def insert sqlite tablename data list global dbc dbc execute insert into tab
  • SQLiteDatabase.openDatabase 与 SQLiteOpenHelper.getReadableDatabase

    这两种方法有什么区别吗 两者都返回一个打开的 SQLiteDatabase 如果数据库不存在 两者都可以创建数据库 当需要读 写时 SQLiteOpenHelper 还具有 getWriteableDatabase 我应该使用哪种方法以及在
  • SQLite (Android):使用 ORDER BY 更新查询

    Android SQLite 我想要在 myTable 中的其他行之间插入行在android中使用SQLite 为此 我尝试增加从第 3 行开始的所有行的 id 这样 我就可以在位置 3 处插入新行 myTable 的主键是列 id 表中没
  • Android中不同线程的数据库访问

    我有一个在 AsyncTasks 中从互联网下载数据的服务 它解析数据并将其存储在数据库中 该服务持续运行 当服务写入数据库时 活动会尝试从数据库中读取更改 我有一个数据库助手 有多种写入和读取方法 这会导致问题吗 可能尝试从两个不同的线程
  • SQLite支持android的数据类型有哪些

    谁能告诉我 SQLITE 中支持 ANDROID 的数据类型列表 我想确认 TIME 和 DATE 数据类型 这里有一个list http www sqlite org datatype3 htmlSQLite 的数据类型 支持时间和日期间
  • SQLiteException - 仅发生在某些设备上

    我最近向市场发布了一个应用程序 从开发者控制台来看 我的用户中大约有 1 2 遇到了这个问题 1 2 的比例很小 但人们更倾向于在某些内容不起作用时留下评论 而不是在它起作用时留下评论 这可能会对下载产生负面影响 不幸的是 开发人员控制台仅
  • 接近语法错误(代码1)插入Android SQLite

    我正在创建一个通讯录应用程序 用户可以在其中输入姓名 电子邮件地址和号码 我希望将此数据保存在数据库中 但我似乎无法使插入方法起作用 我收到的错误是 android database sqlite SQLiteException near
  • 如何在 Android 中使用 Assets 中预加载的 SQLite 数据库

    我想用preloaded database在我的应用程序中意味着尝试在安装 apk 时获取数据库 以便可以使用已保存在其中的数据 我复制了 成分 db 文件位于资产文件夹中 并使用以下代码 但这会出现错误 从资源文件复制数据库时出现问题 我
  • 研究MySQL、SQLite源码了解RDBMS实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道实现数据库是一个很大的话题 但我想通过研究数据库系统的源代码来基本了解数据库系统的工作原理 例如
  • Android中BaseColumns有什么用

    实现一个类有什么用BaseColumns在安卓中 The BaseColumns http developer android com reference android provider BaseColumns html接口提供了非常常见
  • 使用 System.IO.compressing.Gzip 压缩和解压缩非常大的文件

    我的问题可以用以下语句来描述 我希望我的程序能够压缩和解压缩选定的文件 我有非常大的文件 20 GB 可以安全地假设该大小永远无法装入内存 即使压缩后 压缩文件可能仍然无法放入内存 我想使用 System IO Compression Gz
  • 使用Python处理Sqlite数据库中的换行符“\n”?

    我有一个名为 test db 的 Sqlite 数据库 其中包含两个表 其结构如下 表 1 ID 整数主键自动增量 名称 varchar 500 颜色 varchar 500 表2 ID INTEGER PRIMARY KEY AUTOIN
  • 是否可以访问可执行 JAR 之外的 SQLite 数据库文件?

    我有一个作为可执行 JAR 文件部署的应用程序 最初 这个 JAR 文件将与 MySQL 数据库通信 但最近我决定改用 SQLite 然而 在测试时我发现从 JAR 文件运行应用程序时无法访问 SQLite 数据库文件 我使用来自以下网站的

随机推荐

  • 实体框架+存储库+单元或工作问题

    我正在考虑使用 EF 4 启动一个新项目并浏览一些文章 我发现了一篇关于 EF 以及存储库模式和工作单元的文章 http blogs msdn com b adonet archive 2009 06 16 using repository
  • 为什么“uniq”将相同的单词视为不同的单词?

    我想计算文件中单词的频率 其中单词是一行一行的 该文件非常大 因此这可能是问题所在 在本例中共有 300k 行 我执行这个命令 cat temp occ uniq c sort k1 1nr k2 gt distribution txt 问
  • Symfony 2:控制器的依赖注入(DI)

    是否有机会使控制器依赖于其服务 而不是通过使用其中的服务容器 而是通过纯粹的构造函数依赖注入 我想用这种方式编写控制器
  • Python lambda函数计算数字的阶乘

    我刚刚开始学习Python 我遇到了 lambda 函数 在其中一个问题上 作者要求编写一个用于数字阶乘的单线性 lambda 函数 这是给出的解决方案 num 5 print lambda b lambda a b a a b lambd
  • bash:如何评估 PS1、PS2……? [复制]

    这个问题在这里已经有答案了 可能的重复 Echo 扩展 PS1 有什么办法可以 评估 吗 PS1 PS2等来自 bash 脚本中的内容 虽然 我可以使用替代方法来获取当前的所有元素PS1 我真的希望能够重用它的定义 而不是使用这些替代方法
  • PyQT QTreeWidget迭代

    我有两列QTreeWidget 一列代表一个网址列表第二个代表results 我已加载第一列中的网址列表 现在我想迭代此列表 并在迭代期间更改第二列中的文本 如何实现这一目标 您可以致电QTreeWidget invisibleRootIt
  • 为什么WebSocket“握手后”可以与HTTP共享80端口?

    我认为 端口指定服务器上的程序 当我们说to share a port 实际上意味着to have the requests processed by the same program listening on that port WebS
  • 如何使用 cygwin/mingw 在 Windows 上编译 PHP 扩展?

    我正在尝试建立RabbitMQ PHP 包装器和AMPQ PHP 包装器在 Windows 64 上使用 Cygwin 我已经成功构建了底层 C 库 librabbitmq dll 但我陷入了 phpize 步骤 phpize config
  • JPA OneToMany - 集合为空

    我正在尝试使用 JPA 建立双向关系 我了解维持双方关系是应用程序的责任 例如 图书馆有多本书 在图书馆实体中我有 Entity public class Library OneToMany mappedBy library cascade
  • 将 UIImage 裁剪为 alpha

    我有一个相当大的 几乎全屏的图像 我将在 iPad 上显示它 图像的透明度约为 80 我需要在客户端确定不透明像素的边界框 然后裁剪到该边界框 扫描 StackOverflow 上的其他问题并阅读一些 CoreGraphics 文档 我想我
  • 在没有组件的情况下在vue js中拖放

    我想在 vue js 中使用 html 5 拖放 我看到了 w3schools 关于拖放的教程 它在一个简单的 html 文件中工作 但在我的 vue 项目中不起作用 我的教程代码和链接是 w3schools 拖动 https www w3
  • 如何在不安装 MS Office 且不使用互操作库的情况下读取服务器中的 MS Office 文件?

    互操作库速度很慢 需要安装 MS Office 很多时候您不想在服务器上安装 MS Office 我想用阿帕奇兴趣点 但我在 NET 上 我只需要提取文件的文本部分 而不是在 Office 文件中创建或 存储信息 我需要告诉您 我有一个非常
  • JTable 将单元格颜色设置为特定值

    我正在尝试编写一种方法 对于给定的参数 值 颜色 在值等于 cellValue 的单元格的背景上设置颜色 我的方法实际上所做的是 它在整行的单元格背景上设置颜色 当我选择表格上的行时 我希望方法每次仅在特定列 其中 cellValue 等于
  • Django:覆盖RelatedFieldWidgetWrapper

    我想更改管理站点中外键的 图标的显示方式 我发现打印代码的小部件是RelatedFieldWidgetWrapper那是在django contrib admin widgets py 所以我写了这个类的我的版本并更改了它render功能
  • 在discord.py中手动触发事件

    有没有办法手动触发类似的事件on message or on command error 类似于手动引发异常 是的 有 使用Bot dispatch方法 这对于创建自定义事件很有用 请注意 您必须手动传递参数 bot dispatch me
  • 如果我们在真正的预提交处理程序中,由于 CA 限制,我们实际上无法添加任何新的栅栏 [重复]

    这个问题在这里已经有答案了 我正在将 UIImagePickerController 与 Camera 类型一起使用 当我第一次打开图像选择器控制器时 它工作正常 但是在打开图像选择器 vc 之后 当我旋转设备时 它显示 App 如果我们在
  • 如何处理对 Scala 集合的并发访问?

    我有一个 Actor 其本质是维护一个对象列表 它具有三个基本操作 添加 更新和删除 有时从添加方法调用删除 但除此之外 并且适用于单个集合 显然 该后备列表是同时访问的 添加和删除调用不断地相互交错 我的第一个版本使用了 ListBuff
  • MongoDB:服务器启动警告“数据库未启用访问控制”

    我今天首先安装了MongoDB 3 4 1 但是当我启动它并使用 MongoDB shell 时 它给了我以下警告 C Users hs gt C Program Files MongoDB Server 3 4 bin mongo exe
  • 如何让 git 使用 Textmate 作为我的默认编辑器?

    在命令行中 如果我这样做mate
  • 如何压缩小字符串

    我有一个充满大量 URL 的 sqlite 数据库 它占用了大量的磁盘空间 并且访问它会导致许多磁盘寻道并且速度很慢 平均 URL 路径长度为 97 字节 主机名重复很多 因此我将它们移动到外键表中 有什么好的方法可以压缩它们吗 大多数压缩