2014-12-06 2 views
0

Возможно, у меня возникли тривиальные вопросы, но я смею спросить, пожалуйста, помогите мне ответить на эти вопросы.Использование множественного запроса базы данных по сравнению с одним запросом базы данных в MySQL

Я разрабатываю приложение PHP Mysql. Ранее я имел обыкновение использовать следующий принцип:

  1. Validate HTML-формы с помощью Javascript
  2. Проверка ошибок в PHP, проверяя каждый из входных
  3. В случае успешного обновления базы данных с помощью одного запроса MySQL

Теперь я следую другой подход следующим образом:

  1. Нет Javascript Validation, бу т использовать required атрибут в виде, где вход необходимо
  2. проверки
  3. ошибки каждого входного элемента в PHP и одновременно обновлять базу данных

Таким образом, во втором подходе, я использую, я делая несколько Запрос MySQL (около 30 запросов) для каждого обновления строки.

Я знаю, это не может привести к оптимальной производительности, но,

  1. он сократил число строк кода с коэффициентом по крайней мере 3 (если не больше).
  2. Это гораздо проще для разработки, отладки и сотрудничать
  3. Время разработки значительно меньше (по моей собственной оценке, с коэффициентом 5)

Я хотел бы ваши мысли о втором подходе, В настоящее время я использую в своем приложении.

+1

Если вы обновляете таблицу, я лично считаю, что меньше запросов вы должны сделать лучше, но это потому, что я ленивый человек, и это отражается в моей кодировке, потому что я не хочу делать что-то еще чем один или два раза. Я мог быть совершенно неправ, я никогда не принимал никаких свидетельств или не зашел слишком далеко, кроме как обучения и развития. Почему бы не попробовать смешанный подход - используйте 'require', но все еще стройте 1 запрос? – Jhecht

ответ

0

Вы почти ответили на свой вопрос. Я думаю, вы в основном говорите: я на перекрестке, где я могу выбрать сценарий, который выполняет 30 запросов или с немного большей работой, это может быть 1 запрос.

Я думаю, что это не гонка. Это гораздо более эффективное построение оператора запроса со значениями, которые отправляются. Также лучшая практика, потому что в основном вы не можете предсказать, как приложение будет расти.

Мне нравится проверка html, хотя браузеры все еще обрабатывают это по-другому. Поскольку большинство моих проектов связано с использованием jQuery, я склонен использовать плагин jquery.validate, который требует всего несколько строк для получения мгновенной отзывчивой формы, которая отлично подходит для взаимодействия с пользователем. Конечно, проверка серверов должна всегда быть на месте.

1

Я думаю, что здесь путаница 2 очка,

  1. усилий в области развития Кодекса и читаемости
  2. Performance

Как правило, разработка коды и читаемость имеют приоритет над производительностью. Этот подход в целом подходит для небольших приложений. Поскольку мелкие приложения не будут сталкиваться с серьезными проблемами производительности.

Но когда приложение растет в размерах, тогда 1 запрос против 30 запросов покажет разницу. Представьте себе, если 100-1000 пользователей используют ваше приложение и с вашим 1-м подходом вы будете запускать 100-1000 запросов, но со 2-м подходом вы будете запускать 3000-30000 запросов в БД.

Это может замедлить ваше приложение. Как нет. запросов прямо пропорциональны,

  1. предел пула соединений
  2. БД время блокировки (1 запрос будет блокировать строку для небольшого времени х, но 30 запросов будет блокировать строку для 30x времени)

В худшем случае Если ваше приложение имеет другие формы, модули, которые читают из БД, а затем эти запросы будут подвержены блокировке.

Для обеспечения большей производительности и масштабируемости меньше нет. запросов обновления должны быть предпочтительнее, если они имеют небольшие накладные расходы на кодирование. И другие модули jquery могут использоваться для проверки, что также уменьшит усилия кодирования.

Смежные вопросы