Ситуация такая - есть сайт на базе WordPress с WooCommerce. Wp работает в роли headless cms, разметку рендерит Nuxt, взаимодействующий с WP через rest api.
Проблема заключается в том, что запрос товаров категории или при поиске занимает в среднем от 300 до 800 ms. Сеошники выносят мозг тем, что сайт работает медленно и надо чтобы загрузка страницы занимала не более 200 ms.
Протестировал бэк - основные временные задержки возникают на этапе запроса данных из бд при помощи wp_query.
Задержки растут с увеличением количества параметров фильтрации.
Собственно вопрос - можно ли как то оптимизировать эти запросы/саму базу/WordPress чтобы уменьшить задержки запросов к бд?
Товаров в самой большой категории - не более 2000
Сервер - VPS (Ryzen 7 3700, 16 gb DDR4, 250 Gb nvme), нагрузок практически нет.
Обходится следующим образом.
Добавляется сводная таблица товаров в которой храните id товара и значения параметров по которым производится фильтрация, фильтр и поиск переписываете на поиск по ней.
90 000 товаров 3 500 000 параметров по категории в которой 50к товаров WOFF product Filter отрабатывает 30-40 секунд, Фильтрация по таблице до полутора секунд
сделайте прослойку ElasticSearch =) Хотя бы кэш на запросы.
А так только EXPLAIN поможет понять как сам запрос оптимизировать. Возможно индексы плохие.