[QUOTE]Suntechnic пишет:
Дайте ссылку на где почитать как хранятся инфоблоки в таблицах бд.
Поясню с чем столкнулся.
Создатели сайта так организовали хранение фото пользователей в БД - в специальном инфоблоке потрфолио пользователя это раздел с кодом user_#IDПОЛЬЗОВТЕЛЯ#. На сайте больше 15000 пользователей и 15000 разделов в инфоблоке. Любая выборка разделов уверенно ставит базу колом.
Например такой:
[CODE]
# выбираем пользователей
$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;
}
} [/CODE]
Нужно как-то разрулить определенную ситуацию прямыми запросами, а я не очень хорошо ориентируюсь в таблицах.[/QUOTE]LIMIT ставить не надо?
Дайте ссылку на где почитать как хранятся инфоблоки в таблицах бд.
Поясню с чем столкнулся.
Создатели сайта так организовали хранение фото пользователей в БД - в специальном инфоблоке потрфолио пользователя это раздел с кодом user_#IDПОЛЬЗОВТЕЛЯ#. На сайте больше 15000 пользователей и 15000 разделов в инфоблоке. Любая выборка разделов уверенно ставит базу колом.
Например такой:
[CODE]
# выбираем пользователей
$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;
}
} [/CODE]
Нужно как-то разрулить определенную ситуацию прямыми запросами, а я не очень хорошо ориентируюсь в таблицах.[/QUOTE]LIMIT ставить не надо?