Спасибо разработчикам за D7 и ORM. Реально упрощает жизнь "хотящим странного".
Даже при работе с классическими инфоблоками.
Даже при работе с классическими инфоблоками.
Козлов Дмитрий написал: Для некоторых операций на классическом апи пришлось бы городить GetList потом цикл с еще кучей GetList |
Козлов Дмитрий написал: кода надо сделать десятки join, подсчитать количество или сумму по колонкам (причем с добавленим distinct или без) |
Козлов Дмитрий написал: В классическом стиле пришлось бы делать кучу циклов, заполнять массив данными |
Козлов Дмитрий написал: А в орм - один запрос к бд |
Козлов Дмитрий написал: Так о какой тормознутости идет речь? |
SEL ECT BE.ID as ID, R.TOTAL_VALUE as TOTAL_VALUE, R.TOTAL_POSITIVE_VOTES as PRO, R.TOTAL_NEGATIVE_VOTES as CONTRA, IFNULL(R.TOTAL_VALUE, 0) as RATING FR OM b_iblock_element BE INNER JOIN b_iblock_element_prop_s155 IBP ON IBP.IBLOCK_ELEMENT_ID = BE.ID LEFT JOIN b_rating_voting R ON BE.ID = R.ENTITY_ID AND R.ENTITY_TYPE_ID = 'IBLOCK_ELEMENT' WHERE 1=1 AND BE.IBLOCK_ID = 155 AND IBP.PROPERTY_1442 = 879 ORDER BY RATING DESC, ID DESC |
сделал тыщу замеров чтоб сравнить Bitrix\Main\UserTable::GetList и CUser::GetList первый оказался в ~8 раз медленней |
итак, сам запрос то выполняется за примерно такое же время там +- а вот жутко тормозит метод всё остальное и запросы не похожи только в фильтрации в орм (`main_user`.`ID` in (1, 2)) в старом (1=1 AND ( ( (U.ID='1' and U.ID is not null) OR (U.ID='2' and U.ID is not null) ) ) ) |
ну типа орм, универсальность все дела, удобство пользования блаблабла....но потеря в производительности жаль, что в разы теряем :( хотя оно и логично, 3 огромных класса для работы с ним VS прямого описания каждой таблицы вручную |
Козлов Дмитрий написал: то будет быстрей. В 8 раз медленный ОРМ выполняющий 1 запрос в базу или быстрый GetList, а потом цикл с сотней GetByID |
Даже при работе с классическими инфоблоками. |
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».