データベースの二つの指向

2022/03/27

Categories: database Tags: database storage engine

いろいろと端折ってる。

脳内では簡単に理解したいのであくまでもイメージ。


DBで扱う際の根本的なデータ構造の話。

列の集まりなのか、行の集まりなのか。

ストレージに対して列として保存していくのか、行として保存していくのかでも

長所短所がことなる。

a,b,c
1,2,3
1,2,4

上記は説明に使うデータ。

列指向

列として格納。

a: [1,1]

といったまとまりで管理する。

一列分のデータだけ出すよみたいなのは早いが、

全列出すみたいなのは行指向と比べて効率が悪い。

列に対する集計処理みたいなのは早い。

最近でてきたやつらしい。

大量のデータから参照を行うデータ分析とかの分野でよく使われる。

行指向

{a: 1, b: 2, c: 3}

上記みたいに扱う。

例えば全件全行パッと出すときは早い。

a列だけしかいらんみたいなのは逆に効率悪い。

集計とかは弱い。

だいたいのDBはこちら。

インデックスとかで工夫して高速化する。

更新はこちらの方が早い。

まとめ

基本的には行でよさげ。

更新、特に行単位更新が多いのであれば素直に行指向でいいのではないか。

データがクソデカかったり、かつ挿入、更新処理頻度は大したことないみたいなのは列がよさげ。

参考

列指向データベースと行指向データベース - Product Documentation - Treasure Data Product Documentation

>> Home