Низкая скорость сайта с большим количеством товаров

Есть сайт с 14к товарами
насколько я понимаю, для минишопа это не проблема
но он очень долго грузится, т.е. где надо, например, фильтровать все 14к товаров время ожидания ответа сервера 10-15 сек
можно ли как-то ускорить работу фильтров mfilter? вроде читал, что минишоп и 40к товаров может потянуть
alexandr.skyrda
30 января 2024, 15:03
modx.pro
132
0

Комментарии: 17

Карпович Сергей
30 января 2024, 16:43
0
Проблема не в минишоп, а в фильтрах.
у меня например тоже 20к товаров, все шустро работает, пока к mfliter2 мне не пришлось прицепить остатки. и теперь каталог грузится по 30 секунд.

никто из разработчиков плагинов mfilter и remains так и не разобрались.

Понятно стало только то что при подключении remains к выводу, идет огромное количество запросов
    alexandr.skyrda
    30 января 2024, 17:00
    0
    да, проблема именно в mfilter
    т.е. решения особо нет?
      Артур Шевченко
      30 января 2024, 17:02
      0
      Если хочешь, можешь попробовать FlatFilters
        alexandr.skyrda
        30 января 2024, 17:47
        0
        спасибо, наверное буду пробовать
          alexandr.skyrda
          30 января 2024, 20:59
          0
          после установки плагина сайт упал( HTTP ERROR 500
            Наумов Алексей
            30 января 2024, 21:20
            0
            Ставить раннюю alpha версию альтернативного компонента фильтрации на боевой сайт — не нужно 100%.
              alexandr.skyrda
              30 января 2024, 21:43
              0
              проблема была в версии php на которую ругался плагин SendIt. подняли с 7.3 до 7.4 — норм
              спасибо за оперативную помощь @Артур Шевченко
          Алексей Смирнов
          30 января 2024, 21:39
          0
          Если remains отключить сайт быстрее работает? или так же?
            alexandr.skyrda
            30 января 2024, 21:45
            0
            у меня нет remains…
            если вы имеете ввиду плагин для учёта остатков
              Карпович Сергей
              30 января 2024, 21:47
              0
              Если убрать хотя бы сортировку по остаткам, то в 10 раз быстрее грузятся категории.
              Причем замечено, чем больше товаров категории, тем затуп сильнее.
              От 50 товаров уже становится заметно.

              Все вызовы по инструкциям компонентов, ни каких велосипедов.

              Если интересно посмотреть на это, могу в теле доступ дать
            Наумов Алексей
            30 января 2024, 21:18
            0
            Причин может быть множество.
            Нужно и структуру каталога посмотреть, и вызов сниппета mFilter2, и чанк для отображения строки с товаром.
            После этого изучить формируемый sql запрос, что там… Поставьте debugParser для первичного анализа еще.

            На ваш вопрос нет однозначного ответа и волшебной кнопки.
            mFilter2 может работать относительно быстро с большим кол-вом товаров, но нужно аккуратно его использовать.
              alexandr.skyrda
              30 января 2024, 21:58
              0
              поставил debugParser
              вот такой результат
              на странице со всеми товарами (14к товаров) 51с (!) ответ
                alexandr.skyrda
                30 января 2024, 23:02
                0
                поигрался еще с debugParser
                вот параметр фильтра
                &filters=`
                    	ms|price:number,
                    	tv|ms_type,
                    	tv|ms_type-lamp,
                    	tv|ms_style,
                    	tv|ms_tsvet-stekla,
                    	tv|ms_material,
                    	tv|ms_shyrina:number,
                    	tv|ms_vysota:number,
                    	tv|ms_dlyna:number,
                    	tv|ms_diametr:number,
                    	tv|ms_kolich-lamp:number,
                    	tv|ms_brand,
                    `
                ЕСЛИ убираю ms|price:number (т.е. фильтр цены), то время ответа примерно 3 секунды, что терпимо
                НО с ms|price:number время ответа 50 секунд
                как фильтр цены может так влиять на время ответа?
                  Наумов Алексей
                  31 января 2024, 12:30
                  0
                  prepareSnippet стоит, он может поддормаживать
                  куча tv в фильтре, причем фильтруются как number. Вы же знаете, что tv хранятся в базе в виде строки, и каждый раз при фильтрации они к числу приводятся, что есть медленно

                  у вас 72 тысячи (!) запросов! есть над чем подумать.
                    alexandr.skyrda
                    01 февраля 2024, 01:13
                    0
                    72 тысячи запросов как раз тогда, когда есть фильтр по цене, без него — 1 тысяча запросов, но дело в том, что это по сути обычный вызов снипета как на большинстве магазинах с десятком тв полей…
                    Василий Наумкин
                    01 февраля 2024, 03:58
                    +2
                    ЕСЛИ убираю ms|price:number (т.е. фильтр цены), то время ответа примерно 3 секунды, что терпимо
                    НО с ms|price:number время ответа 50 секунд
                    как фильтр цены может так влиять на время ответа?
                    Очень просто.

                    В miniShop2 есть событие для изменения цены товара плагинами — msOnGetProductPrice. Если у вас установлены какие-то плагины, меняющие цены, то они срабатывают в момент подготовки фильтров. И генерируют вам дополнительные десятки тысяч запросов.

                    Нужно разбираться, какой плагин и зачем это делает.
                      alexandr.skyrda
                      01 февраля 2024, 15:14
                      +1
                      спасибо, именно в этом проблема была
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  17