InfiniDBのデータ格納形式

InfiniDBは列指向型アーキテクチャを採用しているため、データは列単位で格納されます。
列単位でデータを格納する場合、行単位でデータを格納する汎用データベースと比べて圧縮効果が高くなります。

例えば、図1のようなデータが格納されている場合、汎用データベースは行ごとにデータが格納されているため、重複データの割合は低くなります。全く同じデータが存在することは少ないです。
それに対して、InfiniDBのような列指向型データベースでは、列ごとにデータが格納されているため、列によっては非常に高いデータ重複率となります(例:性別、年齢など)。

InfiniDB_DataStore01
【図1】汎用データベースとInfiniDB(列指向型)のデータ格納メージ



このように重複率が高いデータが多く存在する場合は、効率良く圧縮することができます。

InfiniDB_DataStore02
【図2】InfiniDB(列指向型)のデータ圧縮前後のイメージ


データ圧縮率が高いと、ストレージ容量の削減につながることはもちろん、検索時にディスクから読み込むデータ量を削減できるため、検索パフォーマンスの向上に大きく寄与します。