web-dev-qa-db-fra.com

Filtrage par post méta champs personnalisés - Performances

Je pourrais utiliser certains conseils sur la façon de structurer mes données pour la performance. J'ai un type d'article personnalisé avec beaucoup de métadonnées personnalisées stockées dans la table wp_postmeta sous la forme d'un tableau sérialisé sous une clé méta pour chaque article. Maintenant, je dois obtenir des publications de ce type de publication et les filtrer en fonction des métadonnées que j'ai stockées.

Pour l’instant, la seule façon de penser à cela est d’obtenir TOUTES les métadonnées de TOUTES les publications de ce type, puis de les désérialiser dans un tableau PHP massif, puis d’utiliser les boucles foreach pour vérifier tous les un par un. Cela me semble être une façon très mauvaise/lente de faire les choses.

À ce stade, je pense que je devrais abandonner tout mon plan et commencer à partir de zéro en utilisant mon propre tableau personnalisé. C'est tellement déprimé cependant, et ce serait BEAUCOUP de travail. Mon autre idée est de faire ce qui a été suggéré sur cette autre question ( meta_query avec des méta-valeurs comme sérialiser des tableaux ) et séparer toutes les méta-valeurs dans des méta-clés séparées puis interrogez-les comme indiqué sur cette question. Le problème que je vois là-dedans est que cette requête ne semble pas être particulièrement rapide non plus, et ma table wp_postmeta deviendrait ÉNORME.

Toutes les idées seraient grandement appréciées .

1
Dominic P

Si vous souhaitez avoir plus de contrôle sur le filtrage de vos publications, séparer les méta-valeurs en clés séparées est la meilleure option. En outre, vous pouvez également séparer les valeurs requises lors du filtrage et placer les autres dans un tableau sérialisé.

4
Joshua Abenazer