Anton
не использую. Суджешнс сам отрубается, если больше скольки-то там товаров.
Андрей
Там ещё новый параметр появился с последней обновой
Anton
7.2
Андрей
Конечно, если у вас выбирается много товаров, возможно вы заметите замедление работы фильтров. Но больших магазинов без скидок почти не бывает, так что новый функционал включен по умолчанию. Но вы всегда можете его отключить опцией &noPreciseMSFilters=1 https://modx.pro/news/17738
Anton
мариядб последняя
Evgeniy
А профилирование запроса что говорит?
Avent
Можно в mysql напрямую создать индексы
Anton
http://joxi.ru/DmBOLe7CJzbOD2
Avent
Например сортировки asc desc
Anton
а что конкретно индексировать?
Avent
Например поле по которому сортируешь
Avent
Отдельно для asc и desc
Avent
Там от разного порядка скорость может зависеть
Anton
да сортировка--то ладно, там без неё тормозов дофига.
Avent
Ну сортировка то учитывается при ввборке
Evgeniy
Профилирование в phpmyadmin. Если запрос этот там выполнить. Скорее всего почти все время будет занимать copy to tmp table
Avent
При offset в пагинации
Anton
вот пагинация да, жестко тормозит
Yurij
Просто оно сейчас на 70к нормально так тормозит, а у заказчика в прайсе все 113к да ещё и с кучей опций.
Можеш ещё попробовать включить cache_db, но протестируй сайт, не знаю как себя поведет
Avent
попробуй все таки поля лучше сразу создавать в таблице ms_products
Anton
а где там в пшпмайадмине профайлер?
Avent
https://docs.modx.pro/komponentyi/minishop2/razrabotka/plaginyi-tovarov
Yurij
Мне не помогло такое
Он работает только с обьектами
Avent
меньше будет джойнов - быстрее скорость
Evgeniy
а где там в пшпмайадмине профайлер?
Там когда запрос пишешь, ниже этого поля галочка, рядом с постоянным редактированием
Evgeniy
Точнее после того как выполнил запрос. Между ним и результатами
Anton
http://joxi.ru/V2VZLkGtdK3nj2
Anton
как-то странно выглядит
Anton
2 секунды ищет запись в кеше?
Anton
а, стоп, он просто запрос к кешу отпрофайлил чтоли?
Evgeniy
Ну как-то странно. У меня были другие показатели совсем
Avent
Запрос долгий скорее всего из за длинного IN
Anton
а как его заставить без кеша запрос сделать?
Anton
ну да, там эпический ин
Avent
если поменять условие вместо id IN на parent IN AND class_key = 'msProduct' должно быть быстрее
Evgeniy
Да я тоже думал про IN
Anton
так надо тогда всех перентов сначала
Avent
парентов проще найти
Avent
это же категории
Avent
не думаю что у тебя их 70к
Anton
это да)
Avent
getChildIds берет ресурсы из карты сайта
Avent
возьми его сначала
Anton
1366 категорий пока
Yurij
ещё если отсеять товари з price = 0 намного быстрее будет
Avent
кстати попробуй карту сайта отрубить в настройках modx
Avent
быстрее станет или нет, интересно простог
Avent
только кэш почисти
Anton
а как она может влиять?
Avent
а как она может влиять?
разрастается сессия
Yurij
getChildIds берет ресурсы из карты сайта
как више писал, в нем основной тормоз
Avent
у меня было такое что при большой сессии все глючило тормозило
Avent
хз как это связано
Avent
еще кстати посмотри у тебя в таблицу sessions сколько записей и сколько весит
Anton
ещё если отсеять товари з price = 0 намного быстрее будет
вообще не помогло, там мало таких товаров
Anton
так-то лог показывает, что запрос к бд 3.5 секунды идёт или больше, разве сессия на это влияет?
Anton
кстати попробуй карту сайта отрубить в настройках modx
чёт не соображу, это где вообще делать?
Yurij
у меня было такое что при большой сессии все глючило тормозило
Есть такая проблема. А ещё помагает оптимизировать некоторые чанки
Anton
в сессии 1 запись в таблице 5 метров
Avent
в сессии 1 запись в таблице 5 метров
тогда надо думать как избаваляться от IN
Anton
а этот гетчайлдайдис он где-то в пдотулс или мсёрче разве применяется?
Avent
наверное так
Anton
ну тогда от него никак не отделаться, если только свой не написать.
Anton
но не факт, что он лучше будет
Avent
Алексей
ну тогда от него никак не отделаться, если только свой не написать.
Без mFIlter пробовали вывести товары с категории? сколько сек? Если очень бодро, то построение фильтров - отнимает много времени. Если почти так же, то нужно что-то делать: - Или писать своф фильтр учитывающий именно ваши нюансы - Писать свой магаз с нуля чтобы учеть максимальную призводительность.
Алексей
Знаю, просто предлагаю проверить на чистую без построения фильтров.
Алексей
я pdoRess заменил у себя на проекте - самописом (у меня нет фильтрации) и на 100к ресах скорость просто взлетела. Написал на PDO почти прямыми запросами, конечно...
Anton
Ну тут фильтрация нужна.
Avent
на чистую без фильтров можно так: 1) Получаешь все ids от текущего через getChildIds 2) Пишешь чистый xpdo Запрос для того, чтобы из этих ids отсеить только категории (class_key = 'msCategory') 3) Пишешь чистый запрос с условием где parent:IN список ids (с пункта 2) AND class_key = msProduct
Avent
затем можно обернуть в pdoPage с element=твойСниппет
Avent
а в том сниппете еще в последнем запрос указываешь $q->limit($limit, $offset);
Anton
ну, кстати, голый мсПродуктс отработал за 1 секунду.
Алексей
воот
Алексей
о чем и речь...