データ圧縮のタイミング

圧縮は、多くの行があって各行に同じカラムがあるか、少なくとも他の行と同じ数のカラムのあるテーブルに最適です。

圧縮は、多くの行があって各行に同じカラムがあるか、少なくとも他の行と同じ数のカラムのあるテーブルに最適です。たとえば、ユーザー名、電子メール、状態などのユーザー・データを含むテーブルは、圧縮に適した候補です。各行のデータが互いによく似ているほど、圧縮率と読み取りのパフォーマンスが向上します。

さまざまなカラム・セットの行を持つテーブルは、圧縮には不向きです。

テーブルの圧縮を、CQLを使用する古いアプリケーションの後方互換性確保のために使用する、カラムのコンパクト・ストレージと混同しないでください。

テーブルのデータ特性に応じて、データの圧縮によって以下の結果が得られる可能性があります。

  • データのサイズが1/2〜1/4に縮小
  • 読み取りのパフォーマンスが25〜35%向上
  • 書き込みのパフォーマンスが5〜10%向上

既存のテーブルの圧縮を構成すると、以降作成されるSSTableが圧縮されます。ディスク上の既存のSSTableは、すぐには圧縮されません。通常のCassandraのコンパクション・プロセスが発生すると、既存のSSTableが圧縮されます。既存のSSTableを強制的に書き込みなおして圧縮するには、nodetool upgradesstables(Cassandra 1.0.4以降)またはnodetool scrubを使用します。