Поддержка WooCommerce Почему woocommerce такой тормозной, я в шоке?!

  • Приветствую! Не хочу, чтобы по провокационному заголовку восприняли в штыки эту тему. Но я правда хочу понять.

    Немного воды:
    Все время я работал с Bitrix. Про то какой он прожорливый до ресурсов и тормозной все слышали. Но этому есть объяснение: инфоблок Битрикса (единица хранения информации типа wp_post) состоит более чем из 10 таблиц, а когда к нему прикручивается интернет-магазин, то и все 15 будет. Понятно дело, что это порождает большие и медленные запросы к БД. Да и самого php кода в Битриксе очень много.

    Заглянул в базу WP — таблиц не так уж и много, всяко будет меньше 10 на хранение постов и свойств.

    В итоге я решил протестировать это дело и доказать, что Битрикс совсем не токов, как его расхваливает маркетинг. Взял клиентскую 1С базу на 2700 товаров с картинками и свойствами (свойств более 10 на товар всего разнообразных свойств наверное в районе 50 для разных категорий). Категорий тоже много 340.
    Поставил стандартную тему Storefront, плагин для обмена с 1С и все, никакого кеша.
    Сделал обмен.

    Тоже самое развернул типовой магазин на Битрикс и залил туда те же самые товары.
    Расположил все на хостинге от REG.RU за 300р. оптимизированный для Битрикс (т.е. по мощней по времени скриптов чем другие).

    ИТОГ:
    Страница товара в woocommerce открываться стала 6-9 секунд.
    Битрикс же так же с отключенными кешами открывает страницу товаров за 1,5-2 сек.

    Попробовал выделить и удалить все товары в woocommerce , сайт сразу упал (414 Request-URI Too Large).
    Битрикс это выдержал.

    Поставил плагин посмотреть SQL запросы, в итоге при открытии страницы товаров генерится около 40 запросов вида
    SQL:
    SELECT t.*, tt.*, tm.meta_value FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id LEFT JOIN wp_termmeta AS tm ON (t.term_id = tm.term_id AND tm.meta_key = 'order_pa_с-выносом') WHERE tt.taxonomy IN ('pa_с-выносом') AND tr.object_id IN (1264) GROUP BY t.term_id ORDER BY tm.meta_value
    Я так понимаю читаются свойства товаров. Но почему столько запросов, они что в цикле читаются?

    Вобщем я в шоке. Не могу понять не логичности ситуации. Это когда меньшее количество таблиц в БД порождает большее количество запросов и время выполнения.
    Я слышал жалобы на медленность WP но я правда думал, что это нытьё когда на полу-бесплатном хостинге что-то там тормозит. В итоге все правда.

    Далее эксперименты показали, что все дело именно в свойствах. У товара, который без категории и без свойств, загрузка 0,2 сек. и всего 45 запросов. Как только добавляешь свойства запросы растут, а после включения в несколько категорий уже 500 запросов и 9 сек. на открытие страницы.

    Даже не знаю, как сформулировать свой вопрос. Я правда не могу поверить что Битрикс оказался чуть ли не в 10 раз быстрее.
    Скажите, с чем технически связана медленность woocommerce (или WP), я хочу понять именно это?

    • Тема изменена 5 лет, 10 месяцев назад пользователем Yui. Причина: в раздел woocommerce
Просмотр 15 ответов — с 1 по 15 (всего 15)
  • Не хочу, чтобы по провокационному заголовку восприняли в штыки эту тему.

    Зачем тогда так назвали? Провокатор?

    «Скорость» (чего, кстати) во многом зависит и от настроек сервера и того, как собран сайт и от того, какие процессы там происходят (одно дело вывести простой товар на не посещаемом сайте и совсем другое — фильтрация по множеству параметров на прилично трафике).

    Модератор Yui

    (@fierevere)

    永子

    вас никто с битрикса на woocommerce не гонит (надеюсь)

    на хостинге от REG.RU за 300р

    немногим лучше полубесплатного, только за деньги

    Модератор Yuri

    (@yube)

    Скажите, с чем технически связана медленность woocommerce (или WP), я хочу понять именно это?

    У WC далеко не оптимальная структура хранения данных. Возможно, болезнь роста.
    А еще у меня появилось подозрение, что в WC вер. 3.+ начала дублироваться инфа о товаре в кастом филдах и термах.

    Блин, я никуда не бегу, я хочу разобраться с технической точки зрения, поведение WP меня удивило. Когда я затевал это сравнение для себя, я ожидал что результат будет на оборот.

    я ожидал что результат будет на оборот.

    и здесь тоже скажу — используйте правильный, оптимизированный под ВП хостинг — и порадуйтесь результату

    Модератор Yuri

    (@yube)

    поведение WP меня удивило

    Наверно, все-таки WC. WP хоть и обжора, но при прочих равных сайты без WC на порядок веселее, даже без кэширования.

    Модератор Yui

    (@fierevere)

    永子

    раз уж речь о кешировании и хостинге,
    WC очень благодарно вопринимает наличие кеша транзиентов на основе например redis
    поэтому хостинг с наличием redis, или хотя бы memcached будет большим бонусом к улучшению производительности

    Ок,

    и здесь тоже скажу — используйте правильный, оптимизированный под ВП хостинг — и порадуйтесь результату

    Скажите любой с тестовым периодом и я проверю для эксперимента, сообщу результат.

    Наверно, все-таки WC. WP хоть и обжора, но при прочих равных сайты без WC на порядок веселее, даже без кэширования.

    А что это?

    Модератор Yuri

    (@yube)

    А что это?

    Что что?
    WP = WordPress
    WC = WooCommerce

    ))

    Скажите любой с тестовым периодом и я проверю для эксперимента, сообщу результат.

    на этом форуме запрещена реклама каких-либо хостингов.

    Причина в том, что сам по себе Вордпресс имеет немного сложную иерархию данных и не предназначен для интернет-магазинов. Если Вы хотите облегчить сайт (особенно если речь идет о большом количестве товаров) но также иметь стандартный движок, то лучше всего перейти на MODX , он полностью может быть перестроен, но перенос может добавить проблем. А так лучше всего обновить вопрдсресс до 4.9.5 и включить на сервере PHP 7 уже чуть лучше станет ситуация.

    • Ответ изменён 5 лет, 7 месяцев назад пользователем Yui. Причина: - url
    Модератор Yui

    (@fierevere)

    永子

    Вордпресс имеет немного сложную иерархию данных и не предназначен для интернет-магазинов

    статистика неумолимо вас опровергает

    https://habr.com/post/296668/
    чуть чуть уступает Magento, и да, WordPress действительно не предназначен, для этого и существует WooCommerce

    чуть чуть уступает Magento

    И это смотря где и в каком разрезе 😉 https://trends.builtwith.com/shop (стоит обратить внимание что в данной статистике и WC и Magento — занимают не по одной позиции)

    WordPress действительно не предназначен, для этого и существует WooCommerce

    Да и не WC единым ИМ на ВП делается. Можно вообще простейший ИМ сделать без ИМ-плагинов: в записях будут товары, а их заказ через форму обратной связи.

    Проверил на хостинге с

    memory_limit	512M
    upload_max_filesize	50M
    post_max_size	50M

    ситуация значительно улучшилась. Скорость возросла до 1,3-,5 сек.

    Вобщем выводы для себя сделал WC при большом количестве свойств сильно нагружает sql и требует мощный хостинг.

Просмотр 15 ответов — с 1 по 15 (всего 15)
  • Тема «Почему woocommerce такой тормозной, я в шоке?!» закрыта для новых ответов.