category
データベース
12 件の記事
FIG-091 実行計画(EXPLAIN) — 索引が速いとは限らない 条件に当たる行の割合を動かすと、選ばれる道順がSeq ScanとIndex Scanでひっくり返る。実行して触った場所も見える。 FIG-088 コネクションプール — 受話器を上げたまま、使い回す 回線の本数を変えて6件を流すと、待ち行列が伸びたり消えたりする。毎回つなぎ直すと接続の固定費だけで時間が溶ける。 FIG-078 レプリケーション — 影武者が書き写すのを待つか、待たないか 同期/非同期を切り替えて書き込み、直後にレプリカを読むと古い残高が返ってくる様子を体験できる。 FIG-076 トランザクション分離レベル — 他人の途中経過は、どこまで見えるのか 2つのトランザクションを1ステップずつ動かし、ダーティリードやファントムが起きる瞬間とMVCCが防ぐ様子を見る。 FIG-070 楽観的ロックと悲観的ロック — 待たせるか、やり直させるか 2人が同じ行を同時に更新する様子をステップ実行し、ロック待ちとversion衝突検知の違いを掴む。 FIG-053 データベースのインデックス — 半分ずつ捨てて探す巻末索引 同じ検索を全表スキャンと索引で走らせ、比べた回数が桁違いになる様子を実測する。 FIG-049 コンシステントハッシング — ノードを足しても引っ越しは最小 リング上でノードを追加・削除し、引っ越すキーが「% 台数」方式よりずっと少ないことを実数で見比べる。 FIG-044 SQL JOIN — 2つの表を、どこまで残してくっつける? INNER/LEFT/RIGHT/FULLを切り替えると、残る行と結果表・NULLの出方が連動して変わる。 FIG-039 正規化 — 1つの事実は、1か所だけに書く 非正規形→1NF→2NF→3NFとステップを進め、重複セルがどこで消えるかをハイライトで追う。 FIG-036 トランザクションとACID — 振込の巻き戻しボタン 振込を途中で失敗させ、ロールバックで元に戻す。「全部成功か、全部なかったことか」を体感する。 FIG-023 ブルームフィルタ — 「絶対に無い」だけ即答する門番 単語を登録するとビットが立つ。問い合わせて「確実に無い」と偽陽性(あるかも)の違いを体験する。 FIG-013 N+1問題 — 職員室に10回も聞きに行かない 「1人ずつ聞く」と「名簿をまとめてもらう」を実際に走らせて、往復11回 vs 1回を体感する。