每日一博 | GaussDB 技术解读丨高级压缩
本文作者|华为云数据库GaussDB首席架构师 冯柯 【背景介绍】 数据压缩与关系数据库的结合,早已不是一个新鲜的话题,当前我们已经看到了各种各样数据库压缩的产品和解决方案。对于GaussDB来说,在今天引入数据压缩,究竟能够给客户带来什么不一样的价值,是过去一段时间我们一直在思考的问题。 为了回答这个问题,我们首先对各种通用压缩算法进行了广泛的测试,从性能最好的LZ4/Snappy,到性能与压缩率均衡的Zstd/Zlib,再到强调压缩率的LZMA/BZip。我们发现:即使是性能最好的压缩算法,仍然无法做到对一个在线数据库的性能不产生显著影响。我们也调研了数据库领域的各种编码方法,包括近几年学术界发布的一些基于预测和线性拟合的编码方法,从研究发布的测试结果及实测来看,数据库编码用于解决特定数值分布的可压缩性问题,与压缩算法的成熟度相比,当前并没有一种通用的数据库编码方法,能够在大多数真实数据集中的场景下提供稳定的压缩率。 这是我们对于数据库压缩这个领域的一个基本技术判断。过去的产品实践也验证了这一点,我们看到很多商业数据库和开源数据库都提供了对于压缩的支持,绝大多数时候,留给客户的选择...
