В веб-приложениях, что более реально: 1 запрос на соединение для 4 таблиц или 4 отдельных вызова базы данных? - PullRequest
2 голосов
/ 29 ноября 2011

Что в PHP эффективнее?

  • 1 запрос на присоединение к 4 таблицам ИЛИ
  • 4 отдельных вызова базы данных?

Предел будет максимум 10 в каждом случае.

Таблицы:

approvals
id  |  content  |  user_id  |  time_stamp

users
id  |  name  |  email

labels
id  |  name

label_relations
id  |  label_id  |  approval_id

Ответы [ 2 ]

5 голосов
/ 29 ноября 2011

Один сложный (но эффективно составленный) вызов превзойдет 4 простых вызова.

Причина в том, что выполнение вызова базы данных связано с большими накладными расходами, обычно больше, чем сам запрос. Есть:

  • Открытие транзакции
  • Разбор запроса
  • Проверка авторизации
  • Расчет плана
  • Установление переноса результатов
  • Закрытие транзакции

Все это не имеет ничего общего с получением данных. Вы избегаете делать все это (и более) 3 раза, делая один звонок.

Просто убедитесь, что ваш запрос хорошо написан - например, рассмотрите союзы

1 голос
/ 29 ноября 2011

Если вы правильно закодируете свои запросы, оба будут одинаково надежными.

Возможно надежный не слово, которое вы ищете .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...