Большое количество пользовательских таксономий WordPress замораживает базу данных и весь сайт - PullRequest
0 голосов
/ 24 апреля 2019

Я импортировал 100 тысяч пользовательских терминов таксономии в моей базе данных WordPress.Я импортировал Страна -> Государство -> Города в иерархическом порядке.Таким образом, мои термины в таблицах базы данных (20 МБ) и термины таксономии (15 МБ) были намного больше, чем весь мой сайт и панель администратора, и даже не может загрузить ни одной страницы моего сайта.Я также пробовал эластичный Jetpack, который не мог помочь мне в этом вопросе.По сути, я хочу импортировать как минимум 5 стран с их штатами и городами в свою базу данных, чтобы пользователь мог выбрать его местоположение с помощью раскрывающегося списка.Не могли бы вы помочь мне кто-нибудь?Могу ли я кешировать это или как это сделать, не влияя на производительность базы данных mysql?Я могу дать вам больше информации об этом.Пожалуйста, спросите меня что-нибудь.Спасибо.PS: я размещаю свой этот сайт на CloudWays

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Создайте API REST для вывода вашего поста вместо обычного php.Это загрузит ваш пост быстрее.Воспользуйтесь этой функцией Wordpress register_rest_route()

0 голосов
/ 29 апреля 2019

WP использует модель схемы EAV (Entity-Attribute-Value). Это довольно неуклюже, и оно не масштабируется далеко за пределы «тысяч».

Однако есть частичное исправление путем улучшения "мета" схем в WP: http://mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta

«Реальное» исправление состоит в том, чтобы создать собственную схему со столбцами для атрибутов, не пытаясь найти их косвенно.

Нет реальной веской причины, чтобы страна-> Штат-> Город была иерархией. Плоский стол с этими 3 столбцами (и, возможно, с некоторыми другими) быстрее и менее неуклюж. Другие таксономии, возможно, должны храниться иерархически. Хотели бы вы обсудить конкретный вопрос?

В MySQL 8 появилась новая функция: CTE. Они упрощают написание запросов к иерархии.

...