ストレージと抽出
目次
データベースを駆動するデータ構造
トランザクション処理か分析処理か?
列指向ストレージ
まとめ
大まかには、OLTPに最適化されたものとOLAPに最適化されたものに分類でき、これらはアクセスパターンが異なる
OLTP
リクエストは多いがターゲットは小さい→ディスクのシーク時間が問題になりやすい→インデックスが重要
OLAP, Data warehouse
リクエストは少ないが短時間でmillions of recordsのscanが必要→ディスクの帯域(not シーク時間)が問題になることが多い→列指向ストレージ
OLTP側では2つの考え方のストレージエンジンがある
log-structured
インプレース更新
BTree, Relational Databases
OLTP
複雑なインデックス
全てをメモリにもつタイプ
データウェアハウスの高レベルアーキテクチャ
分析的なワークロードで大量のデータをシーケンシャルにスキャンする場合インデックスはあまり関係ない
内容
最も単純なデータベース:ログを用いるもの
ログとは追記だけを行うことができるデータ構造をいうことにする
Writeは早い、Readは遅い
Writeを早くするには追加のデータ構造が必要: これをインデックスという
これはWriteのパフォーマンスを下げる
このトレードオフはデータベースにおける普遍的なものである
データベースを駆動するデータ構造
そのほか