В общем, что дороже? Двухстрочный цикл и один вызов базы данных или вызов базы данных для каждого из N элементов только в одном цикле?
Не ища ответа на микросекунды, просто общее представление о том, какое направление я должен предпринять.
ТИА.
В общем, что дороже? Двухстрочный цикл и один вызов базы данных или вызов базы данных для каждого из N элементов только в одном цикле?
Не ища ответа на микросекунды, просто общее представление о том, какое направление я должен предпринять.
ТИА.
В общем, чем меньше раз вы попадаете в базу данных, тем лучше. Для этого есть несколько причин, в том числе:
В общем, все, что делается в памяти (для цикла), быстрее, чем то же, что и в сети (вызов базы данных). Однако:
for i = 1 to num_users
get user from database
end
будет медленнее, чем
get users 1 to num_users from database (in one query)
потому что это количество раз, когда вы запрашиваете базу данных для чего-то, что действительно имеет значение.
Это очень зависит.
Вложенный цикл будет намного быстрее, чем вызов базы данных, если у вас всего несколько сотен элементов. Вызов базы данных включал обычно передачу данных через LAN или хуже, интернет. запрос должен анализироваться каждый раз и т.д.
Но если у вас есть тысячи или миллионы элементов, которые просматриваются в одном запросе базы данных, тогда запрос sql будет намного быстрее, поскольку системы баз данных оптимизированы для обработки огромных объемов данных. Но не забудьте создать индексы для ваших таблиц.
Если вы сомневаетесь, вы должны измерить время, которое требуется для каждого метода, и если это просто дает вам более полное представление о том, как работает производительность.
Просто сделайте снимок: вызовы БД, скорее всего, будут более дорогими. По крайней мере, это то, что я испытал до сих пор...
В общем, чем меньше вы получаете доступ к базе данных, тем лучше.
Если вы собираетесь обрабатывать каждый элемент, просто сделайте один звонок, если он не будет использовать возмутительный объем памяти.
Я думаю, это зависит от того, что вы делаете. В вашем заявлении недостаточно информации.
Вышеуказанные ответы верны, чем меньше вы получаете доступ к базе данных, тем лучше (обычно). Поэтому вы должны попытаться выполнить определенную операцию как можно меньше запросов к базе данных. Единственное исключение из этого, я думаю, будет в тех случаях, когда ваше приложение быстрее, чем база данных, возможно, при сложных преобразованиях данных или при использовании очень неэффективной базы данных.
Обычно, позволяя базе данных делать преобразования данных в заданной форме, обычно быстрее, чем делать их программно, используя курсор в цикле for. Если это не то, что вы привыкли делать, я предлагаю изучить немного больше SQL или получить хорошую книгу, как SQL Cookbook (заметьте: я не связан с О'Рейли, эта книга была очень полезна для меня.)