208 похожих чатов

Нужен совет тех, кто оптимизировал выборки. Есть ли подводные камни в

моем подходе?
Задача стояла в ускорение выборки элементов со свойствами и снижение потребления ресурсов сервером.


Подход из мануала по ORM
$promoIblock = \Bitrix\Iblock\Iblock::wakeUp($promoIblockId);
$elements = $promoIblock->getEntityDataClass()::getList([

Время выполнения: 0.149571
Память: 33 934 512

Ускоренный, но более громоздкий:
1. получаем все свойства ИБ (кеш 24 часа)
$ibProps = \Bitrix\Iblock\PropertyTable::getList([
2. получаем нужные элементы (кеш минута)
$arPromo = \Bitrix\Iblock\ElementTable::getList([
3. получаем значение свойств для элементов (кеш минута)
$properties = \Bitrix\Iblock\ElementPropertyTable::getList([
4. Разносим полученные свойства по нашим элементам

Время выполнения: 0.078432
Память 13 489 968

4 ответов

7 просмотров

Есть. Ваш код будет работать только для инфоблоков 1.0. Ну и всякие интересные артефакты вроде обработки значений пользовательских типов свойств и обработки списочных свойств

Антон (code-pilots)- Автор вопроса
Eugene Zhukov
Есть. Ваш код будет работать только для инфоблоков...

спасибо за коментарий. Тут как раз каталог на ИБ 1.0. А есть возможность перевести каталог на ИБ 2.0? Чет я пока таких не встречал за 2 года. Интересно было бы сравнить производительность.

Антон (code-pilots)
спасибо за коментарий. Тут как раз каталог на ИБ 1...

заходите в настройки инфоблока и меняете, если число свойств позволяет

Антон (code-pilots)- Автор вопроса
Eugene Zhukov
заходите в настройки инфоблока и меняете, если чис...

Это "изменить место хранения свойств"? Помню мне крайне не советовали это делать. Попробую на копии. Тут решение Аспро, посмотрим отвалится или нет.

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

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
70
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
GridView fully ignored first parent(SizedBox), and take width from second parent(Container). How can I constrain GridView by first parent? Widget build(BuildContext context) {...
Hamster
1
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Hey there Which is the best Linux destro for developers (coding)? To my research on reddit, they said Linux mint is good for mid level spec and Ubuntu for high Lev hardwar...
Wiz 🪄
11
Карта сайта