При использовании инфоблоков+ и выборке нужных свойств напрямую
на каждое свойство делается запрос
таким образом если мы достаем 20 свойств то получаем 20 запросов к таблице b_iblock_property для одного компонента, а если на странице 5 компонентов то это уже 100 запросов.
Вопрос к разработчикам: Почему бы получение описания свойств внутри одного запроса GetList не объединить в один запрос который получает описание сразу всех нужных свойств?
В тикете 66176 подымался данный вопрос, но предлагалось только кешировать эти запросы что не оптимально.
$rs = CIBlockElement::GetList( array(), array('IBLOCK_ID' => 1, 'PROPERTY_SHOW_MAIN' => 1), false, false, array( 'ID', 'NAME', 'PROPERTY_P1', 'PROPERTY_P2' ) ); |
на каждое свойство делается запрос
SELECT BP.* FROM b_iblock_property BP, b_iblock B WHERE BP.IBLOCK_ID=B.ID AND B.ID IN (7) AND UPPER(BP.CODE)=UPPER('PHONE') |
таким образом если мы достаем 20 свойств то получаем 20 запросов к таблице b_iblock_property для одного компонента, а если на странице 5 компонентов то это уже 100 запросов.
Вопрос к разработчикам: Почему бы получение описания свойств внутри одного запроса GetList не объединить в один запрос который получает описание сразу всех нужных свойств?
В тикете 66176 подымался данный вопрос, но предлагалось только кешировать эти запросы что не оптимально.