Nous avons remarqué des temps de chargement très longs lors de la modification d'un article ou d'une page. En utilisant Query Monitor, nous avons constaté que cette requête de base WP prend jusqu'à 15-20 secondes.
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()
Nous utilisons beaucoup de postmeta car l'un de nos types de messages utilise environ 20 champs personnalisés. Je dirais que nous comptons peut-être trop sur postmeta, mais cela semble être une requête très inefficace, vu qu'il ne sélectionne même pas l'ID du message.
Est-ce un problème commun? Existe-t-il un moyen de désactiver cette fonction via un filtre? Merci pour toute contribution.
meta_form()
fonction et c'est bien la requête SQL générée à partir de cette fonction principale. Vous pouvez essayer d'ajouter votre propre métabox personnalisée avec des modifications au code meta_form()
et d'y utiliser votre requête SQL suggérée. J'ai trouvé ce ticket trac fermé # 8561 . Vous pourriez peut-être créer un autre ticket ou essayer de rouvrir celui-ci? PS: Notez que la page parent qui sélectionne la métabox est également problématique. Si vous avez 1 million de pages, toutes s'afficheront comme options de sélection!
meta_form()
fonction. J'ai mis à jour la réponse - la requête SQL principale a été ajustée dans WP version 4.3. Voyez-vous un gain de performances avec cette nouvelle requête SQL par rapport à notre post_id
restriction supplémentaire ?