在cassandra中,当很多版本的列散布在不同的SSTables上时,需要进行压缩以加快查询检索速度。当完成相同列或删除的更新序列时,压缩是最佳策略。但压实是一个繁重的资源利用过程。但在我的应用程序中,我只使用Cassandra插入记录并查看它们。但密钥空间大小可能会以GB为单位增长。它将拥有超过数百万条记录。对我来说,插入只是重要的。我不打算更新列或删除列。我的简单删除将在整个密钥空间。现在我怀疑是否可以禁用压缩?压缩禁用会降低查询性能吗?..
答案 0 :(得分:5)
1)这取决于您的数据模型。
2)Cassandra的复杂部分是读取性能,压缩可以改善它。
3)即使你不打算删除或更新同一列,但是如果你打算在同一行插入新列,那么禁用压缩肯定会妨碍你的读取性能,因为它会增加磁盘搜索次数。 / p>
4)除了压缩完成逻辑删除收集的工作,但删除是整个键空间删除,所以这不是一个问题。
5)压缩将行碎片合并在一起,删除过期的逻辑删除并重建索引,在您的情况下不需要这些。所以理论上你可以关闭压实。但是,如果布隆过滤器误报可能会影响您的读取性能,那么更多的sstable和大数据。请参阅此处的bloom过滤器:Cassandra Architecture Overview