ADD COLUMN age INT; ② CREATE INDEX idx_users_age ON users(age); ③ ALTER TABLE users ADD CONSTRAINT chk_age CHECK (...); MySQL DDL ごとに暗黙 COMMIT が⾛る ① 残る 確定済み ② 残る 確定済み 中途半端なスキーマが残る ③ 失敗 適⽤されず age列とインデックスだけ存在し、制約だけ無い 戻すための SQL は⾃分で⽤意する ここで失敗 PostgreSQL BEGIN 〜 ROLLBACK で囲める ① 消える 巻き戻る ② 消える 巻き戻る ③ 失敗 適⽤されず 実⾏前と、完全に同じ状態に戻る 「何も起きなかった」ことにできる 戻す⼿順を⽤意しなくてよい MySQL 8.0 の atomic DDL は「1文が壊れない」保証で、これとは別の話 今ココ 本編 8/14
= 1プロセス 1つのプロセス thread thread thread thread thread メモリを共有するので、1接続あたりが軽い 接続数が増えてもそれなりに耐える … process process process process process process 1接続ごとにメモリを持つので⾼い Lambda と組むならプーラーが実質必須 PostgreSQL は接続が重い。PgBouncer / RDS Proxy が実質必須になる 今ココ 本編 9/14