SQLSQL2025-09-19

SQLの実行方法:個別クエリと一括クエリの使い分け

1. 短いSQLをループで実行する方法

// ユーザーIDの配列があるとする $userIds = [1, 2, 3, 4, 5]; foreach ($userIds as $id) { $sql = "SELECT name, age FROM users WHERE id = $id"; $result = $pdo->query($sql)->fetch(); // 取得結果をPHPで加工 }
特徴
  • SQLはシンプルで読みやすい
  • ループで何度もDBにアクセスするため「通信回数が増える」
  • データベース側ではなくホスト言語側でロジックを書く必要がある
  • 小規模データならわかりやすいが、大規模だとパフォーマンスが落ちる

2. 長いSQLで一気に処理する方法

SELECT id, name, age FROM users WHERE id IN (1, 2, 3, 4, 5);
特徴
  • SQLが複雑になりがち(JOIN, GROUP BY, HAVING, サブクエリなど)
  • 1回のクエリで必要な情報をまとめて取得できる
  • ネットワーク往復が減り、DBの最適化機能をフル活用できる
  • 大量データや集計処理はこの方式が効率的

3. 違いのまとめ

項目短いSQLをループ長いSQL
読みやすさシンプルで直感的複雑化しやすい
DBアクセス回数多い(遅くなる原因)少ない
負荷の分散ホスト言語側で処理DB側で処理
適している場面小規模データ、シンプル処理大規模データ、集計、結合
実務的な指針
  • 小さいアプリや少数のデータ → 短いSQL + ループでもOK
  • データが多い、大量アクセスがある、集計処理が必要 → 長いSQLでまとめるのが基本