@run182

Что лучше — один большой или много маленьких запросов SQL?

Есть инфоблок, в нем ок. 300 разделов. Нужно вытащить из инфоблока все разделы и кол-во элементов у них. Есть 2 способа:
1) Одним запросом через CIblockSection, с указанием ELEMENT_CNT
2) Один запрос CIblockElement без ELEMENT_CNT и на каждый раздел делать CIblockElement::GetList()->SelectedRowsCount()

Первый способ выполняется за 1,2 сек.
Второй за 0,7 сек.

Выходит, что второй запрос быстрее. Но всегда ли это так?
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
udjin123
@udjin123
Работаю с bitrix
Запросы к реляционной базе данных в цикле "зло"!
Когда занимался глубокой оптимизацией битрикс на 200к товаров и больше 1000 свойств, все такие перлы пришлось убирать.

В вашем случае сразу получать ID разделов элементов с группировкой, чтобы не лезть прямыми запросами в базу, используйте D7, там есть querybuilder
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы