Дайте ссылку на где почитать как хранятся инфоблоки в таблицах бд.
Поясню с чем столкнулся.
Создатели сайта так организовали хранение фото пользователей в БД - в специальном инфоблоке потрфолио пользователя это раздел с кодом user_#IDПОЛЬЗОВТЕЛЯ#. На сайте больше 15000 пользователей и 15000 разделов в инфоблоке. Любая выборка разделов уверенно ставит базу колом.
Например такой:
Нужно как-то разрулить определенную ситуацию прямыми запросами, а я не очень хорошо ориентируюсь в таблицах.
Поясню с чем столкнулся.
Создатели сайта так организовали хранение фото пользователей в БД - в специальном инфоблоке потрфолио пользователя это раздел с кодом user_#IDПОЛЬЗОВТЕЛЯ#. На сайте больше 15000 пользователей и 15000 разделов в инфоблоке. Любая выборка разделов уверенно ставит базу колом.
Например такой:
Код |
---|
# выбираем пользователей $db_res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); while($ob = $db_res->GetNextElement()) { $arElement = $ob->GetFields(); if ($arElement['PROPERTY_88'] != '') { $arElements[$arElement['ID']]['PCNT'] = $arElement['PROPERTY_88']; } } # разделы foreach ($arElements as $key => $arElm) { $db_list = CIBlockSection::GetList( array(), array('IBLOCK_ID' => 40, 'CODE' => 'user_'.$key )); while($ar_result = $db_list->GetNext()) { //$arElements[$key]['ELEMENT_CNT'] = $ar_result['ELEMENT_CNT']; $db_listSS = CIBlockSection::GetList( array(), array('IBLOCK_ID' => 40, 'SECTION_ID' => $ar_result['ID']), true); $i = 0; while($ar_resultSS = $db_listSS->GetNext()) { $i = $i + 1; //$arElements[$key]['SECTIONS'][] = $ar_resultSS; } $arElements[$key]['SECTION_CNT'] = $i; } } |
Нужно как-то разрулить определенную ситуацию прямыми запросами, а я не очень хорошо ориентируюсь в таблицах.