分布式数据库从入门到实战
彭旭
惟客数据总架构师
507 人已学习
新⼈⾸单¥59
分布式数据库从入门到实战
15
15
1.0x
00:00/00:00
登录|注册

03|编码和压缩有什么用?

你好,我是彭旭。
今天我们课程的内容是编码与压缩。在设计一个优秀的数据库时,存储空间、性能以及资源占用无疑是必须深入考虑的关键因素。这些因素直接关联到数据库的效率、成本以及用户的体验。这里面,编码与压缩也是至关重要的一环。
通过这节课的学习,你一定能熟练掌握压缩和编码的常用算法,在使用数据库的时候根据自己的数据表和数据列选择合适的编码格式,优化数据存储结构,节省存储空间,提高数据的读取和查询性能。
如果你是要设计一个存储系统,不管是大量的冷数据存储,分布式场景下大量数据副本占用存储空间,还是有大量 IoT 设备的心跳数据、时序数据存储,都可以在这节课找到对应的启发。
我们先来看一下数据编码。

什么是编码?

我们工作中经常要将图片转成 BASE64 格式方便传输与存储,又或者需要处理音视频减少文件大小,从而提升传输效率,有的时候还会加密数据保障安全。其实,这些都是编码。
维基百科对编码的定义是这样的:编码是信息从一种形式或格式转换为另一种形式的过程;解码则是编码的逆过程。
这种信息转化的过程,一般都会伴随着空间的减少。比如,使用数据字典将一个城市字符串“Zhu Hai”编码映射成 11,存储空间可能就减少了一半。又因为在数据的扫描处理上,字符串的处理时间可能是数字的 2-3 倍以上,所以,如果要对比字段或者给字段排序,那使用数字的性能也全面优于使用字符串,查询性能能够得到较大的提升。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

1. 数据编码是信息从一种形式或格式转换为另一种形式的过程,通常伴随着空间的减少,适合用在重复数据较多的场景。 2. 常用的编码算法包括RLE(Run Length Encoding)、Delta Encoding和字典编码(Dictionary Encoding),它们各自适用于不同的数据类型和场景。 3. 压缩主要是利用消除冗余信息,利用数据的统计特性来减少数据大小、节省存储空间、提升数据传输效率,常用的压缩算法包括Snappy、LZ4、Zstandard、GZip等。 4. 不同的编码与压缩的方式基本是在平衡效率与性能,需要根据使用场景进行取舍。 5. LZ4、Snappy、ZStandard是在数据库引擎中支持较广的压缩方式,一般情况下使用默认的编码压缩会取得较好的性能平衡。 6. 在一些高性能系统中,大量使用压缩会占用较多的CPU资源,有可能导致系统响应性能下降,同时数据需要解压后才能查询过滤,对读性能是一个不利的因素。 7. 合适的编码方式能够节省存储空间,提升查询过滤的性能,以及增加缓存到内存的数据量,但也会带来占用更多的CPU资源的问题。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库从入门到实战》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)