【DB2026 #8】RDB と NoSQLの使い分け

スケーリング
  • RDB はサーバーのスペックを上げる「スケールアップ」が基本。台数を増やすのが難しい
  • NoSQL はサーバーの台数を増やす「スケールアウト」が得意。データを分散配置しやすい構造になっている
DBの拡張性
  • RDB はSQLがあるので、後から「こういう条件でも検索したい」に対応しやすい(JOIN・サブクエリ等)
  • NoSQL はアクセスパターンに最適化して設計するため、想定外のクエリが来ると対応コストが高い
設計難易度
  • RDB は正規化のルールに従ってテーブルを分割すればよく、設計の指針が明確
  • NoSQL は「どのようにデータを読むか」から逆算して設計するため、要件理解が浅いと破綻しやすい

どのような基準で選定するとよいか

観点 RDB NoSQL
スケーリング 低(垂直スケール中心) 高(水平スケールが得意)
DBの拡張性 高(SQLで柔軟にクエリを追加できる) 低(アクセスパターンを事前に決める必要がある)
設計難易度 低(正規化の原則に従えばよい) 高(非正規化やアクセスパターン設計が必要)
ユースケース 複雑な条件で検索する場合
システム要件が増える可能性が高い場合
データの整合性をDB側で制御したい場合
比較的厳密なトランザクションが欲しい場合
とにかくレスポンスを求める場合
大量のデータを制御する場合
テーブルの設計を変更する予定がない場合
検索条件が比較的簡単
キャッシュとして使う場合(DynamoDB)