データベース

SQL の例の多くは MySQL の sakila サンプル DB を対象にしている。 sakila のスキーマとデータは samples/sakila にある。

データベースを使う利点

データを一箇所に集約でき、常に最新のデータが分かる
データのフォーマットを統一できる
データを残すことができる
データが変わっても、一箇所変更するだけで済む
データを完全一致で速く検索できる
データを完全一致で検索する際の方法が同じ

準備

スキーマ設計

SQL

運用

横断的な話題との対応

この階層は MySQL / SQL に固有の話。製品に依存しない考え方は別の階層にある。

この階層の記述横断的な記述
WHERE 句 ほか SQL 全般アプリケーションセキュリティ — パラメータ化以外は確実な対策にならない
ユーザーと権限認証と認可 — 最小権限。アプリ用とシステム用を分ける理由
設定設定の不備 — 既定値のまま本番に出さない
DB と API の境界 の個人情報暗号と鍵の管理 — 鍵とデータを同じ DB に置かない
GROUP BY / インデックス の実行時間の比較性能を測る — 推測せず測ってから直す。この階層の実測はその実例
ビッグデータ のシャーディングモジュール境界 / 分散システム — 分割した後に何を引き受けるか
トランザクション のデッドロックインシデント対応 — まず止血し、原因の究明は後にする
設定 / データ型と桁数 の文字コード国際化 — UTF-8 に寄せる。名前の欄を短く切らない

データの扱いのうち、DB 製品に固有でないものは operations 側にある。

スキーマ変更は、順序を ブルーグリーンに、 MySQL 側の具体をスキーマ変更の運用に書いた。

6件のページ