@i_want_to_know_everything

WordPress индексация данных в базе?

Реализую фильтрацию данных на WordPress, фильтрация может быть по множеству кастомных таксономий и значению произвольных полей которые могут быть у каждой записи. Соответственно можно выбрать любую их комбинацию.
Запрос этого дела через WP_Query все делает как положено, но скорость сильно не устраивает при наличии 50К+ записей.

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

В этом случае, все шикарно и быстро работает. Но есть минус, Первоначальное формирование этой таблицы занимает изрядное количество времени, из за всяких не быстрых вордпрессовских хуков и экшенов, но это еще пол беды, основная проблема это так же долгое обновление ее при пакетном изменении записей, из за тех же экшенов и фильтров.

Есть ли некое альтернативное решение хранения данных, для быстрой фильтрации?
Sphinx в данном случае не подойдет, решение должно работать на обычном дорогом шареде.
  • Вопрос задан
  • 1051 просмотр
Пригласить эксперта
Ответы на вопрос 3
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
сделайте индексы в бд на необходимые поля.Вес базы конечно подрастет, но выборка будет идти быстрее. Хотя на мой взгляд пытаться добиться от wp скорости - это как мастерить ebs в ВАЗ 2101. Интересно, но не стоит ни кому рассказывать.
Как вариант еще можно кешировать запросы, если их вариаций не миллион, то вполне решение.
Ответ написан
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
ElasticPress. Для истинных ценителей шаредов Elastic Search есть в виде облачного сервиса.
Ответ написан
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Sphinx в данном случае не подойдет

www.mysql.ru/docs/man/Fulltext_Search.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы