时间序列压缩
本页介绍了 MongoDB 如何压缩时间序列集合中的数据,以及如何优化压缩。
默认压缩算法
时间序列集合使用zstd压缩,与全局默认压缩算法snappy不同。
列压缩
从MongoDB 5.2版本开始,时序集合使用列压缩。列压缩引入了多项创新技术,共同显著提高了实际压缩效果,降低了数据在磁盘上的整体存储空间,并提升了读取性能。
这些增强功能进一步减少了使用zstd
压缩的数据在磁盘上的大小,同时也显著减少了WiredTiger缓存中使用的空间。
引入的压缩类型包括
差分编码
对象压缩
数组压缩(从MongoDB 6.0版本开始)
运行长度编码(RLE)
差分编码(Delta压缩)
差分编码利用了时序集合数据具有时序特性。不是存储绝对值,而是假设测量值之间不会快速变化。这种方法通过只存储测量值之间的差值来减少所需的信息量。
差分编码的差分(Delta压缩的差分)
对于单调递增的数据,差分编码的差分可以进一步最小化存储的数字大小,通过计算差分的差分本身。
对象和数组压缩
列压缩确保如果您在文档中使用对象和数组,您将获得与那些嵌入字段存在于文档根级别时相同的压缩优势。
了解更多
要了解如何优化压缩,请参阅压缩最佳实践。