Open kawasin73 opened 3 years ago
データベース管理システム DBMS
OLTP データベース : Online transaction processing
OLAP データベース : Online analytical processing
HTAP : Hybrid transaction analytical processing
クライアント・サーバーモデル
転送サブシステム
クエリプロセッサ
実行エンジン
ストレージエンジン
write ahead log とバックアップデータ。
空間的局所性の向上
列ごとにファイルやファイルセグメントをわける。 1つの種類の値を集計するときに余分な読み込みを防げる。集計処理に向いている。 各値は、キーと一緒に保存
データが多次元のマップとして表される
ストレージの効率性
アクセスの効率性
更新の効率性
インデックス構成表 : IOT
ヒープ構成表
ハッシュ構成表
プライマリインデックスとセカンダリインデックス クラスタ化 : キーの順序に並んでいるか プライマリインデックスはクラスタ化 セカンダリインデックスは非クラスタ化
ファイルオフセットで直接指定するか、プライマリキーインデックスで指定するか
この3つが対立軸となる
不変性は、追記のみまたはコピーオンライトで達成できる
BST
ひとつの操作が終わるたびに回転してバランシングを行う。
以下が必要
データセットが大きすぎてメモリ上に全てを保持するのが難しいときにディスク上のデータ構造が利用される。 その一部がメモリ上にキャッシュされる形になる。
回転式のディスク
SSD
読み取りの最小単位はページ。 変更を加えられるのは削除された後のメモリセル。 最小の削除単位はブロック。 空白のブロックに含まれる複数のページにはシーケンシャルに書き込みが行われる フラッシュメモリコントローラは
ディスク操作の最小単位がブロックであることを考慮 ディスク上のポインタ計算が簡単になることが推奨されている
B ツリーのノード内のキーはソートされている。
ノードには予備領域があるのでストレージ使用率は 100% ではない。パフォーマンスに影響はない
検索では対象のキーまたは直前のキーを検出する。 ノード内では二分探索
ノードのオーバーフローでスプリットする。 半分を新しいノードにコピーして、境界のキーを親に追加する。(キーの昇格) ルートも同じ。分割されて新しい親にキーが追加される。 中間とリーフの分割では水平に増える。 ルートの分割では高さが増える。
ノードの値の数が閾値を下回る(アンダーフロー)
https://www.amazon.co.jp/dp/4873119545