Я создал пользовательский тип сообщения с пользовательской таксономией. У меня есть около 1500 постов, все из которых относятся к какому-то термину таксономии ... некоторым - более 200.
Я заметил, что на панели инструментов для просмотра пользовательских типов записей требуется очень много времени, в большинстве случаев это приводит к тайм-ауту шлюза 504.
Запрашивать эти посты из внешнего интерфейса просто отлично, и у меня нет проблем с этим.
Насколько я понимаю, когда приборная панель пытается просмотреть эти пользовательские типы сообщений, она пытается извлечь всю информацию, назначенную каждому сообщению, прежде чем она покажет все.
У меня есть этот набор для установки WP, который позволяет использовать столько памяти, сколько необходимо (memory_limit = -1), как я исследовал, некоторые говорили, что это может быть связано с памятью.
Есть ли что-то, что я могу сделать, чтобы повысить производительность этого запроса ... возможно, не загружать все отношения таксономических терминов поста, пока вы не редактируете пост?
Ошибки после увеличения WP_MEMORY_LIMIT
с 1Gb до 2Gb:
WordPress database error: [MySQL client ran out of memory]
SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('locations') AND tr.object_id IN
WordPress database error: [Lost connection to MySQL server during query]
SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN
WordPress database error: [MySQL server has gone away]
SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month FROM wp_posts WHERE post_type = 'services' ORDER BY post_date DESC
источник
wp-admin/edit.php?post_type=services
?Ответы:
CPT и условия таксономии создаются с помощью плагина. Мне удалось уменьшить запрос, добавив следующее в мой плагин:
На данный момент у меня более 700 постов, привязанных к 1500+ терминам таксономии, и все работает отлично. Сообщения появляются почти мгновенно.
** Я не писал этот код. Кто-то, с кем я работаю напрямую, кто не является членом сообщества WordPress Ответы, предоставил код - возможно, он может помочь кому-то другому, или кто-то другой может расширить его, чтобы сделать его более эффективным. **
источник