コンテンツにスキップ

エンジニアが押さえるべきDB4分野

原文

エンジニアは全員、今の自分の専門を問わずデータベースに詳しくなった方がいい。 DBには少なくともSQL/テーブル設計/データ移行/チューニングの4分野がある

  1. SQL 基本的なクエリが書けるかどうか?
  2. テーブル設計 テーブル間のリレーションを含めてテーブルの設計を正規化を含めてできるか? インデックスを正しく貼れるか?
  3. データ移行 既存のデータを失わずに新しい系にデータを移行できるか?
  4. チューニング スロークエリ分析、改善、監視を含めてチューニングをできるか?

1-4までをカバーしてどれだけハイスピード・ハイクオリティでできるかが大事になる。

要約

DBスキルは「SQL/テーブル設計/データ移行/チューニング」の4分野に分解できる。クエリ書ける・設計できる・データ移行できる・チューニングできる、の4つを全てカバーすることがエンジニアに求められる。

解説

各分野の実務での関わり方

分野 実務での発生頻度 身につける手段
SQL 毎日 日々のCRUD、JOIN、集計クエリ
テーブル設計 新機能ごと ER図、正規化、インデックス設計
データ移行 リリース時、スキーマ変更時 マイグレーション、バッチ、ダウンタイム最小化
チューニング 障害・パフォーマンス問題時 EXPLAIN、スロークエリログ、APM

4分野の相互関係

  • SQLを書ける → テーブル設計の良し悪しが分かる
  • テーブル設計が分かる → データ移行の難易度を見積もれる
  • データ移行ができる → ダウンタイム/整合性の勘所が分かる
  • チューニングできる → 設計時点で性能を意識できる

→ 関連: DBチューニング4ステップDBクエリ最適化データ不整合10パターン

リンク