Инфоблоки vs Хайлодблоки. Смирнов Максим Ведущий программист «1С-Битрикс» История модуля инфоблоков 2003 2004 2005 2006 • 3.0.8 2003-04-11 Документооборот • 3.1.3 2003-09-10 Множественные свойства, файлы и списки. • 3.2.1 2003-12-15 Символьные коды • 3.3.5 2004-02-10 Числовые свойства • 4.0.0 2004-12-07 Многосайтовость и компоненты. • 4.0.6 2005-08-24 Добавлены события • 4.1.0 2006-02-10 Поддержка MSSQL • 5.0.0 2006-05-12 Экспорт/Импорт CSV. Новая админка. • 5.1.0 2006-10-06 Инфоблоки+, пользовательские типы свойств История модуля инфоблоков 2007 • 5.9.0 2007-03-19 Компоненты 2.0 • 6.0.3 2007-07-27 Пользовательские свойства разделов • 6.5.2 2007-09-14 Облако тегов и xml экспорт/импорт 2008 • 6.5.5 2007-10-30 Обмен с 1С. • 7.0.7 2008-07-09 Настройка форм редактирования • 7.1.6 2009-01-13 Добавились новые сортировки элементов. 2009 • 8.0.6 2009-06-08 Автолоад классов модуля • 8.5.0 2009-10-02 SEO оптимизация компонентов и бизнес процессы • 8.5.6 2009-12-14 Сложная логика 2010 • 8.6.2 2010-02-26 Добавлен параметр nElementID • 9.0.5 2010-08-20 Управляемое кеширование в компонентах • 9.5.0 2010-09-30 «Эрмитаж» История модуля инфоблоков 2011 2012 2013 2014 • 10.0.0 2011-03-03 Поддержка SKU • 11.0.0 2011-09-20 Поддержка облачных хранилищ. • 11.0.5 2011-11-21 Расширенные права • 11.5.0 2012-05-13 Подсказки для свойств • 12.0.0 2012-10-13 catalog.smart.filter • 12.5.0 2013-03-16 Вкладка «Торговый каталог» • 14.0.0 2013-10-17 Вычисляемые наследуемые свойства • 14.0.6 2014-01-13 Новые шаблоны компонентов каталога • 14.5.0 2014-04-08 Поддержка композита 600000 500000 400000 300000 200000 100000 0 intranet socialnetwork statistic sale blog photogallery catalog extranet support bizproc calendar advertising timeman subscribe wiki controller perfmon report idea socialservices ldap cluster bitrixcloud bizprocdesigner scale highloadblock rest Объём обновлений (кб) 450792 main 197516 iblock 1140 Churn инфоблоков 120000 100000 80000 60000 40000 20000 0 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 Churn хайлодблоков 3000 2500 2000 1500 1000 500 0 2012 2013 2014 Сравнение Свойство Инфоблоки Хайлодблоки Админка да да Права доступа да нет Разделы да нет Набираемые свойства да да Компоненты да да Интеграция с поиском да нет Интеграция с каталогом да нет Бизнес процессы да нет События да да ORM нет да Добавление 200К элементов 20.00 18.00 16.00 14.00 12.00 10.00 8.00 6.00 4.00 2.00 0.00 highloadblock (3m 16s) iblock (25m 13s) news.list vs highloadblock.list bitrix:news.list: 2.4751 с; Запросов: 15 (2.3896 с) bitrix:highloadblock.list: 0.0168 с; Запросов: 5 (0.0005 с) SELECT BE.ID as ID ,BE.IBLOCK_ID as IBLOCK_ID ,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID ,BE.NAME as NAME ,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_FROM)>0, DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) as ACTIVE_FROM ,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL ,BE.DETAIL_TEXT as DETAIL_TEXT ,BE.DETAIL_TEXT_TYPE as DETAIL_TEXT_TYPE ,BE.PREVIEW_TEXT as PREVIEW_TEXT ,BE.PREVIEW_TEXT_TYPE as PREVIEW_TEXT_TYPE ,BE.PREVIEW_PICTURE as PREVIEW_PICTURE ,L.DIR as LANG_DIR ,BE.SORT as SORT ,BE.CODE as CODE ,BE.XML_ID as EXTERNAL_ID ,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID ,B.CODE as IBLOCK_CODE ,B.XML_ID as IBLOCK_EXTERNAL_ID ,B.LID as LID FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID WHERE 1=1 AND ( ((((BE.IBLOCK_ID = '52')))) AND (EXISTS ( SELECT IBLOCK_ID FROM b_iblock_site WHERE IBLOCK_ID = B.ID AND (((SITE_ID='s1'))) )) AND ((((BE.ACTIVE='Y')))) AND (((BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL))) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))) ORDER BY BE.ID desc ,BE.SORT asc LIMIT 0, 20 SELECT `news`.`ID` AS `ID` ,`news`.`UF_NAME` AS `UF_NAME` ,`news`.`UF_PREVIEW_TEXT` AS `UF_PREVIEW_TEXT` ,`news`.`UF_DETAIL_TEXT` AS `UF_DETAIL_TEXT` FROM `news` `news` ORDER BY `news`.`ID` DESC LIMIT 0, 20 Highloadblock 14.5.0 Highloadblock 14.5.0: Фильтр Highloadblock 14.5.0: Групповые операции Редактирование Удаление Highloadblock 14.5.0: Поддержка множественных значений Поддержка всех пользовательских типов Highloadblock планы: Импорт/экспорт. Поддержка прав. Доработка компонентов и шаблонов. Интеграция с модулем поиска. Упрощённая поддержка NoSql без требования дополнительных библиотек. NoSql на запись и чтение по первичному ключу. Инфоблоки планы: ORM Производительность компонентов и админки Расширение АПИ Выборка значений свойств Выборка из нескольких инфоблоков+ ООП в компонентах CIBlockElement::GetList Поддержка фильтрации и и сортировки по ценам с учётом валют. Поддержка сортировки по ценам и наличию торговых предложений Сравнение по планам Свойство Инфоблоки Хайлодблоки Админка да да Права доступа да не расширенные Разделы да нет Набираемые свойства да да Компоненты да да Интеграция с поиском да да Интеграция с каталогом да нет Бизнес процессы да нет События да да ORM да да Выводы Инфоблоки: Очень мощный с богатым функционалом Хорошо документирован и много примеров Динамично развивается вместе с продуктом Хайлодблоки: ООП с основанием на D7 Намного быстрее инфоблоков Поддержка noSql Спасибо за внимание! Вопросы? Twitter: @qMBQx8GH Skype: mv.smirnov E-mail: [email protected]