GaussDB数据库压缩不应只是压缩率
在企业核心业务支撑的数据库系统使用场景中,开发人员必须全方位监控数据库的运行状况。对于存储资源利用率的挑战,一个直观的解决方案是提升存储系统压缩率,以实现存储空间的节省,或在有限的资源下存储更多的业务数据。然而,数据的压缩和解压过程可能会导致访问延迟、内存膨胀或磁盘占用率的剧烈波动,从而增加系统运行的风险。
图1 非压缩方案与压缩方案性能对比
非压缩方案与压缩方案性能对比,如图1所示。比如,压缩和解压操作会消耗CPU资源,进而对系统性能产生影响。而数据在压缩前后硬盘和内存中的大小差异,也可能给数据库内存管理带来风险。因此,从业务系统和数据库的整体角度出发,如何平衡压缩率和系统性能,成为应对业务快速增长带来的存储问题的关键难点之一。
在面对需要分布式改造的超大单表,或需要频繁扩容的分布式系统中的重量级数据库表时,不仅需要关注上述性能指标和系统稳定性,还需要考虑提高资源利用率的方案是否会带来额外的业务改造成本。此外,考虑到数据的生命周期,业务系统中提高资源利用率的方案不应因数据的新旧而产生交叉影响。由于不同库表的生命周期特点各异,压缩策略也应相应地采取差异化的处理。