はじめに:1行の SQL が旅をする
アプリが SELECT * FROM users WHERE id = 10000; という1行を送ると、データベースの中では何が起きているのでしょうか。ふだん私たちは結果だけを受け取りますが、その裏では「文字列を読み解く」「探し方を決める」「ディスクのどこを読むか決める」「見つけた行を返す」という手順が、きっちり順番に進んでいます。
このアニメモでは PostgreSQL を題材に、その道のりを順に追います。前半は読む側(SELECT)の流れと、1億行あっても一瞬で目的の行にたどり着ける理由。後半は書く側(UPDATE)の流れと、途中で電源が落ちてもデータが壊れない理由(ACID)です。
図は左がアプリ、中央が PostgreSQL、右がデータを置くディスク。SQL はこの左から右へ、結果は右から左へ流れます。



