web-dev-qa-db-fra.com

Comment optimiser WP site pour des millions de messages

Je travaille sur un site Web pour une entreprise qui créera très probablement des millions de messages via un type de message personnalisé. Ce sont des prières. L’utilisateur au début soumet donc une courte phrase via un formulaire. Tout ce dont l'entreprise se soucie, c'est le contenu du message et la date affichée. Le site n'a pas encore été lancé et ils ont déjà plus de 120 000 posts, alors je suis vraiment sérieux quand je dis millions.

Donc, quelques questions d'optimisation:

  1. Supposons que j'ai une catégorie "sélectionnée" dans un type d'article personnalisé contenant 500 000 articles. La catégorie sélectionnée ne compte que 500 articles. Si je crée une requête pour les articles en vedette, est-ce que j'interroge l'ensemble des 500 000 articles ou seulement les 500 en vedette? Que faire si je ne souhaite afficher que les dix publications les plus récentes?
  2. Lorsque vous enregistrez ce type de message personnalisé dans la base de données, puis-je faire quelque chose pour réduire les ressources du serveur, d'autant plus que le contenu du message et la date sont vraiment indispensables?
  3. Devrais-je même utiliser un type de message personnalisé? Je l’aime en principe car il est bien intégré à l’administrateur WordPress, mais s’il ya des inconvénients importants en termes de performances, je suppose que je peux faire quelque chose de différent.

Je n'ai jamais travaillé sur un projet d'une telle envergure, alors je m'inquiète un peu plus de la performance que d'habitude. Merci pour toute aide!

19
Jeremiah Prummer

J'ajoute aussi:

    'no_found_rows'          => true,
    'update_post_term_cache' => false,
    'update_post_meta_cache' => false,
    'cache_results'          => false
  • no_found_rows (boolean) - précisez-le lorsque vous n’avez besoin d’aucune pagination ni du nombre de messages trouvés.
  • cache_results (boolean) - Cache en mémoire d'informations.
  • update_post_meta_cache (boolean) - Met en cache les méta-informations.
  • update_post_term_cache (boolean) - Cache cache d'informations de terme.

En utilisant ces paramètres et en transmettant des valeurs comme FALSE, nous pouvons accélérer la requête en arrêtant l'exécution de requêtes supplémentaires dans la base de données.

Remarque: nous ne devrions pas toujours utiliser ces paramètres car l'ajout d'éléments au cache est la bonne chose à faire. Toutefois, ils peuvent être utiles dans des circonstances spécifiques et vous devez envisager de les utiliser lorsque vous savez ce que vous faites.

Veuillez visiter: https://drujoopress.wordpress.com/2013/06/27/how-to-optimize-wordpress-query-to-get-results-faster/#more-184

3
rigosan

Comme pour toutes les questions d’optimisation prématurée, il est impossible de répondre à celle-ci sans connaître les schémas d’utilisation exacts, que trop de fois ne sont découverts que lorsque vous êtes en direct.

En général, selon les spécifications MYSQL, la quantité de données ne devrait pas poser de problème. Bien sûr, la recherche de données, même avec les meilleurs algorithmes, sera plus lente qu'avec des tables beaucoup plus petites, mais la solution à cela est simple, un processeur plus puissant.

Vous voudrez peut-être optimiser la manière dont les métadonnées sont stockées (par exemple, pour ne pas stocker de données liées au ping), mais ce genre de chose dépend de ce que vous faites exactement et, au final, vous aurez peut-être besoin d'un processeur plus puissant, ce qui ne vaut peut-être pas la peine. .

1
Mark Kaplun