データ圧縮のタイミング
圧縮は、多くの行があって各行に同じカラムがあるか、少なくとも他の行と同じ数のカラムのあるテーブルに最適です。
圧縮は、多くの行があって各行に同じカラムがあるか、少なくとも他の行と同じ数のカラムのあるテーブルに最適です。たとえば、ユーザー名、電子メール、状態などのユーザー・データを含むテーブルは、圧縮に適した候補です。各行のデータが互いによく似ているほど、圧縮率と読み取りのパフォーマンスが向上します。
さまざまなカラム・セットの行を持つテーブルは、圧縮には不向きです。
テーブルの圧縮を、CQLを使用する古いアプリケーションの後方互換性確保のために使用する、カラムのコンパクト・ストレージと混同しないでください。
テーブルのデータ特性に応じて、データの圧縮によって以下の結果が得られる可能性があります。
- データのサイズが1/2〜1/4に縮小
- 読み取りのパフォーマンスが25〜35%向上
- 書き込みのパフォーマンスが5〜10%向上
既存のテーブルの圧縮を構成すると、以降作成されるSSTableが圧縮されます。ディスク上の既存のSSTableは、すぐには圧縮されません。通常のCassandraのコンパクション・プロセスが発生すると、既存のSSTableが圧縮されます。既存のSSTableを強制的に書き込みなおして圧縮するには、nodetool upgradesstables(Cassandra 1.0.4以降)またはnodetool scrubを使用します。