Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Тормозит выборка с фильтром по свойствам.

00 голосов
3
Здравствуйте.

Посоветуйте пож-ста как оптимизировать запрос или какую-то другую функцию


$ar_order = array ("IBLOCK_ID" => 5, "PROPERTY_city_id" => 'ff0333c0-d483-4910-8ee1-3a52260e2c07', "PROPERTY_district_id" => 'b67ce206-67bb-47a2-89eb-312c49210cfc', "><PROPERTY_total_square"=> array (40, 60))'

выбираю записи
$res = CIBlockElement::GetList(false, $ar_filter, false, false, $ar_select);
$res->NavStart(20);
while ($ob = $res->GetNextElement()) {
... вывожу
}

и надо где минуту ждать пока оно выведет мне записи

1) тестировал на разных серверах,
2) записей в инфоблоке под номэром пиать всего 976
3) до этого делал намного бальше фильт и не тормозило, тоесть тут или из-за сравнения с 'b67ce206-67bb-47a2-89eb-312c49210cfc' тормохит или я синтаксис >< неправильно использую
спросил 31 Июль, 13 от YuRki (160 баллов)

3 Ответы

00 голосов
Если предполагается делать сложные выборки по многим параметрам, то инфоблоки должны быть в режиме инфоблоков 2.0, т.е. храниться в отдельных таблицах.
ответил 31 Июль, 13 от Brat (180 баллов)
00 голосов
>CrazyMax
Спасибо
и еще вопрос

есть два свойства элемента
PROPERTY_floors - этаж на котором обьект
PROPERTY_floors_qty - всего этажей в здании
как мне выбрать все обьекты которые нахоятся НЕ на последнем этаже
тоесть что-то типа такого
$ar_filter ['!PROPERTY_floor'] = 'PROPERTY_floors_qty';
но такое условие не проходит, получается надо знать заранее количество этажей этажей для каждой записи

можно както сделать такую выборку?
ответил 28 Сен, 13 от YuRki (160 баллов)
00 голосов
Может так:
Код
$ar_filter ['>PROPERTY_floor'] = 'PROPERTY_floors_qty';


Насколько я понимаю, тут неплохо про фильтр написано. :)
ответил 29 Дек, 13 от Brat (180 баллов)

Похожие вопросы

0 голосов
7 ответов
спросил 24 Авг, 13 от Vidoc (120 баллов)
0 голосов
0 ответов
спросил 06 Май, 14 от Ris (280 баллов)
0 голосов
10 ответов
0 голосов
2 ответов
спросил 25 Окт, 13 от UpueH (120 баллов)