RDB内部構造完全ガイド

SELECT文がデータベース内部で何層にも処理されるまでを、パーサーからストレージエンジンまで追跡する。

RDB内部構造完全ガイド

SELECT文がデータベース内部で何層にも処理されるまでを、パーサーからストレージエンジンまで追跡する。

目次

  1. プロローグ ── SELECT 文の裏側で何が起きているか ![RDB内部アーキテクチャ — クエリのライフサイクル](images/ch01.png)
  2. パーサーとプランナー ── SQL が実行計画になるまで ![パーサーとプランナー — SQL→構文木→実行計画](images/ch02.png)
  3. 実行エンジンとアクセスメソッド ── 計画を実行に移す ![実行エンジン — Volcanoモデル・スキャン方式・並列クエリ](images/ch03.png)
  4. インデックス深掘り ── B-Tree・GIN・GiST・BRIN ![インデックス種別 — B-Tree・GIN・GiST・BRIN](images/ch04.png)
  5. ストレージエンジン ── ページ・タプル・TOAST ![ストレージエンジン — ページ・タプル・TOAST・HOT](images/ch05.png)
  6. MVCC ── 読み書きが互いをブロックしない仕組み ![MVCC — マルチバージョン同時実行制御・スナップショット分離](images/ch06.png)
  7. WAL と障害復旧 ── データを絶対に失わない仕組み ![WALと障害復旧 — 先行書き込みログ・チェックポイント・PITR](images/ch07.png)
  8. ロックとデッドロック ── 同時実行制御の最後の砦 ![ロックとデッドロック — 行ロック・アドバイザリーロック・楽観的ロック](images/ch08.png)
  9. EXPLAIN ANALYZE 完全ガイド ── 実行計画を読みこなす ![EXPLAIN ANALYZE — 実行計画の読み方・ボトルネック特定](images/ch09.png)
  10. クエリ最適化のパターン集 ── 「遅い」を「速い」に変える ![クエリ最適化パターン — 10の実践テクニック](images/ch10.png)
  11. VACUUM と Bloat 対策 ── Dead Tuple との戦い ![VACUUMとBloat — Dead Tuple回収・autovacuum・TX ID Wraparound](images/ch11.png)
  12. レプリケーション ── ストリーミング・ロジカル ![レプリケーション — ストリーミング・ロジカル・同期/非同期](images/ch12.png)
  13. パーティショニングとシャーディング ── テーブルを分割してスケールする ![パーティショニングとシャーディング — Range・Hash・Citus](images/ch13.png)
  14. エピローグ ── RDB を「ブラックボックス」にしない ![RDBチューニングチェックリスト — Day 1〜4のロードマップ](images/ch14.png)