Один большой запрос против множества маленьких? - PullRequest
6 голосов
/ 25 марта 2012

Я хотел бы знать, какой вариант является самым дорогим с точки зрения пропускной способности и общей эффективности.

Допустим, у меня есть класс Client в моем приложении и таблица client в моей базе данных.

Лучше ли иметь одну статическую функцию Client.getById, которая извлекает всю запись клиента, или многие (Client.getNameById, Client.getMobileNumberById и т. Д.), Которые извлекают отдельные поля?

Если в одной записи есть много полей, и я заканчиваю тем, что использую одно или два в текущем скрипте, все же лучше получить все и решить внутри приложения, что делать со всеми данными

Кстати, я использую PHP и MySQL .

1 Ответ

14 голосов
/ 25 марта 2012

Лучше ли иметь одну статическую функцию Client.getById, которая извлекает всю запись клиента, или многие (Client.getNameById, Client.getMobileNumberById и т. Д.), Которые извлекают отдельные поля?

Да, это так.

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

Если размер данных действительно настолько велик, что вы видите эффект, вы можете рассмотреть поиск нужных вам полей в одном запросе (адаптировать запросы к данным).

...