エンジニアが押さえるべきDB4分野¶
原文¶
エンジニアは全員、今の自分の専門を問わずデータベースに詳しくなった方がいい。 DBには少なくともSQL/テーブル設計/データ移行/チューニングの4分野がある
- SQL 基本的なクエリが書けるかどうか?
- テーブル設計 テーブル間のリレーションを含めてテーブルの設計を正規化を含めてできるか? インデックスを正しく貼れるか?
- データ移行 既存のデータを失わずに新しい系にデータを移行できるか?
- チューニング スロークエリ分析、改善、監視を含めてチューニングをできるか?
1-4までをカバーしてどれだけハイスピード・ハイクオリティでできるかが大事になる。
要約¶
DBスキルは「SQL/テーブル設計/データ移行/チューニング」の4分野に分解できる。クエリ書ける・設計できる・データ移行できる・チューニングできる、の4つを全てカバーすることがエンジニアに求められる。
解説¶
各分野の実務での関わり方¶
| 分野 | 実務での発生頻度 | 身につける手段 |
|---|---|---|
| SQL | 毎日 | 日々のCRUD、JOIN、集計クエリ |
| テーブル設計 | 新機能ごと | ER図、正規化、インデックス設計 |
| データ移行 | リリース時、スキーマ変更時 | マイグレーション、バッチ、ダウンタイム最小化 |
| チューニング | 障害・パフォーマンス問題時 | EXPLAIN、スロークエリログ、APM |
4分野の相互関係¶
- SQLを書ける → テーブル設計の良し悪しが分かる
- テーブル設計が分かる → データ移行の難易度を見積もれる
- データ移行ができる → ダウンタイム/整合性の勘所が分かる
- チューニングできる → 設計時点で性能を意識できる
→ 関連: DBチューニング4ステップ、DBクエリ最適化、データ不整合10パターン