Перейти к содержимому


Фотография
- - - - -

Импорт 300 000 материалов и оптимизация работы JBZoo для работы с большими объемами данных

рецепт оптимизация импорт

Сообщений в теме: 43

#21 CB9TOIIIA

CB9TOIIIA

Отправлено 08 October 2014 - 10:06

Он начинает сильно просаживать загрузку страницы т.к его производительность напрямую зависит от количества материалов в категории по которой идет поиск. Так уж написан SQL запрос. В силу специфичности он вложенный, учитывает сортировку и джойнит несколько больших таблиц. Поиск почти всегда получается без использования индексов MySQL (не путать с индексами JBZoo).

Масштаб проблемы ~ +2 секунды для категории с 3000 материалов (был реально такой случай у меня).

 

Альтернативы есть? просто related auto не подошел на новостнике... совсем. Видимо для e-commerce может и отлично, но для статейного сайта:

  • заголовок
  • интротекст
  • текст 

Поиск очень плохо работает (related auto). Может какую нибудь простую штуку типо prevnext только с JBZOO уклоном?


Сообщение отредактировал CB9TOIIIA: 08 October 2014 - 10:08

  • 0

#22 SmetDenis

SmetDenis

Отправлено 08 October 2014 - 10:25

Альтернативы есть?


Пока не видел. Элемент стандартный и есть в коробке Zoo довольно давно. Скорее всего никто не задавался таким вопросом и не знает о подводных камнях.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#23 CB9TOIIIA

CB9TOIIIA

Отправлено 08 October 2014 - 10:37

Пока не видел. Элемент стандартный и есть в коробке Zoo довольно давно. Скорее всего никто не задавался таким вопросом и не знает о подводных камнях.

 

В видеоуроках на ютубе, да и в описании уклон идет на e-commerce настройки related-auto, есть ли гайд по настройке с текстовыми элементами? скажем так релевантные статьи выводить?


  • 0

#24 SmetDenis

SmetDenis

Отправлено 10 October 2014 - 07:10

В видеоуроках на ютубе, да и в описании уклон идет на e-commerce настройки related-auto, есть ли гайд по настройке с текстовыми элементами? скажем так релевантные статьи выводить?


По сути related items auto точно так же настраивается и для других материалов.
Товар это или текстовая страница - это лишь формальности.

Дабы не оффтопить, рекомендую создать об этом ;)
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#25 jetjo

jetjo

Отправлено 28 November 2015 - 10:16

Здравствуйте ! в zoo 3.3.10 удалять то что вы написали нужно из запроса sql я правильно понимаю ? удаляться должно выделенное Bold' ом
тобишь вырезаю код из sql вида, верно ?:
$query = "SELECT a.*"
            ." FROM ".$this->name." AS a"
            ." LEFT JOIN ".ZOO_TABLE_CATEGORY_ITEM." AS b ON a.id = b.item_id"
            .($join ? $join : "")
            ." WHERE a.application_id = ".(int) $application_id
            ." AND a.".$this->app->user->getDBAccessString($user)
            .($published == true ? " AND a.state = 1"
            ." AND (a.publish_up = ".$null." OR a.publish_up <= ".$now.")"
            ." AND (a.publish_down = ".$null." OR a.publish_down >= ".$now.")": "")

            ." AND b.category_id ".(is_array($category_id) ? " IN (".implode(",", $category_id).")" : " = ".(int) $category_id)
            ." GROUP BY a.id"
            .($order ? " ORDER BY " . $order : "")
            .($limit ? " LIMIT ".(int) $offset.",".(int) $limit : "");

        return $this->_queryObjectList($query);
    }
  • 0

#26 SmetDenis

SmetDenis

Отправлено 28 November 2015 - 20:47

удаляться должно выделенное Bold'ом тобишь вырезаю код из sql вида, верно ?:


Все верно. Главное не нарушить SQL и PHP синтаксис.
Этот фрагмент отвечает за проверку дат начала и окончания публикации, статуса материала и уровень доступа.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#27 jetjo

jetjo

Отправлено 29 November 2015 - 11:08

А возможно убрать только проверку дат начала и окончания публикации

тк у меня постинг новостей с автопубликацией и только для зарегистрированных, получается удалив все выделенное у меня что то да отвалиться


  • 0

#28 jetjo

jetjo

Отправлено 29 November 2015 - 14:46

логично предположить если, то удаляю только это:

 ." AND (a.publish_up = ".$null." OR a.publish_up <= ".$now.")"
            ." AND (a.publish_down = ".$null." OR a.publish_down >= ".$now.")": "")

я прав ?

спасибо!


  • 0

#29 SmetDenis

SmetDenis

Отправлено 30 November 2015 - 12:00

логично предположить если, то удаляю только это:

Да, вы все верно предположили.

Получится что-то вроде этого
        $query = "SELECT a.*"
            ." FROM ".$this->name." AS a"
            ." LEFT JOIN ".ZOO_TABLE_CATEGORY_ITEM." AS b ON a.id = b.item_id"
            .($join ? $join : "")
            ." WHERE a.application_id = ".(int) $application_id
            ." AND a.".$this->app->user->getDBAccessString($user)
            .($published == true ? " AND a.state = 1"
            ." AND b.category_id ".(is_array($category_id) ? " IN (".implode(",", $category_id).")" : " = ".(int) $category_id)
            ." GROUP BY a.id"
            .($order ? " ORDER BY " . $order : "")
            .($limit ? " LIMIT ".(int) $offset.",".(int) $limit : "");

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#30 jetjo

jetjo

Отправлено 30 November 2015 - 14:51

Спасибо, а в самом Jbzoo в файле jbmodel.php еще идет состояние материала я так понимаю ?

 

->where('tItem.' . $this->app->user->getDBAccessString())
            ->where('tItem.state = ?', 1)       

    

мне удалять нужно только :

 

->where('(tItem.publish_up = ' . $this->_dbNull . ' OR tItem.publish_up <= ' . $this->_dbNow . ')')
            ->where('(tItem.publish_down = ' . $this->_dbNull . ' OR tItem.publish_down >= ' . $this->_dbNow . ')');

 

я прав ? или нужно все 4 строчки для выключения учета начала и конца публикации

спасибо!


  • 0





Темы с аналогичным тегами рецепт, оптимизация, импорт

Click to return to top of page in style!