Мы замечали очень долгое время загрузки при редактировании поста или страницы. Используя Query Monitor, мы обнаружили, что этот основной запрос WP занимает до 15-20 секунд.
SELECT meta_key
FROM wp_postmeta
GROUP BY meta_key
HAVING meta_key NOT LIKE '\\_%'
ORDER BY meta_key
LIMIT 30
caller:
meta_form()
post_custom_meta_box()
do_meta_boxes()
Мы используем много постметов, так как один из наших типов постов использует около 20 или около того пользовательских полей. Я бы сказал, может быть, мы слишком полагаемся на postmeta, но это кажется очень неэффективным запросом, поскольку он даже не выбирает идентификатор сообщения.
Это общая проблема? Есть ли способ отключить эту функцию через фильтр? Спасибо за любой вклад.
meta_form()
функцию, и это действительно сгенерированный запрос SQL из этой основной функции. Вы можете попытаться добавить свой собственный метабокс с изменениями в коде meta_form()
и использовать предложенный SQL-запрос. Я нашел этот закрытый билет # 8561 . Возможно, вы могли бы создать еще один билет или попытаться снова открыть этот? PS: обратите внимание, что выбор метабокса для родительской страницы также проблематичен. Если у вас есть 1 миллион страниц, то все они будут отображаться как выбранные варианты!
meta_form()
функцию. Я обновил ответ - основной запрос SQL был скорректирован в WP версии 4.3. Видите ли вы какой-либо выигрыш в производительности с этим новым запросом SQL по сравнению с нашими дополнительными post_id
ограничениями?