При использовании инфоблоков+ и выборке нужных свойств напрямую
на каждое свойство делается запрос
таким образом если мы достаем 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 подымался данный вопрос, но предлагалось только кешировать эти запросы что не оптимально.