Optimiser les requêtes SQL pour des sites WordPress plus rapides

Vous savez, un site Web rapide = = utilisateurs plus heureux, positionnement amélioré de Google et un taux de conversion plus élevé. Peut être pensez aussi que votre site WordPress est aussi rapide que possible: avez vu les performances de votre site, des meilleures pratiques de configuration de serveur à la résolution de problèmes de code lents et à la désinstallation d’images sur CDN, mais est ce vrai? Pour les sites basés sur des bases de données dynamiques comme WordPress, pouvez encore faire face à un problème: les requêtes de base de données ralentissent votre site. Dans je vais montrer comment identifier les requêtes qui causent des goulets damp;rsquoétranglement, comment comprendre leurs problèmes, et comment réparer rapidement et damp;rsquoautres façons damp;rsquoaccélérer le temps damp;rsquoexécution des requêtes SQL. Je vais utiliser un vrai problème que nous avons rencontré récemment qui ralentira la vitesse sur le portail client Delicious Brains. Format générique de nom de domaine.
Trouver des requêtes SQL lentes la première étape pour corriger les requêtes SQL lentes est de les trouver. Ashley a fait lamp;rsquoéloge sur son blog du plug in de débogage Query Monitor, dont la fonctionnalité de requête de base de données en fait un outil précieux pour identifier les requêtes SQL lentes et améliorer les performances de la base de données. Le plug in signale toutes les requêtes de base de données effectuées lors damp;rsquoune demande de page. Vous permet de filtrer le Code d’appel ou le composant (plug in WordPress, thème ou Core) et de mettre en évidence les requêtes répétées et lentes: ne voulez pas installer le plug in de débogage sur le site de production ( pourriez inquiéter damp;rsquoune surcharge de performance accrue), pouvez choisir damp;rsquoactiver MySQL slow Query log, qui enregistre toutes les requêtes qui nécessitent un certain temps damp;rsquoexécution. Il est relativement facile de configurer et de définir lamp;emplacement des requêtes damp;rsquoenregistrement. Comme il samp;rsquoagit damp;rsquoune modification au niveau du serveur, lamp;rsquoamélioration des performances sera inférieure au plug in de débogage sur le site, mais devrait être désactivée dans les cas suivants:
Faites le parce quamp;rsquoil affiche le nombre de lignes que recherchez pour les résultats. Explain nous fournit également plus damp; que nous pouvons utiliser pour lamp;rsquooptimisation. Par exemple, la table pm2 (WP _ posteta) nous dit que nous utilisons un filtre parce que nous avons besoin damp;rsquoun ordre par clause sur lamp;rsquoinstruction pour trier les résultats. nous groupons également les requêtes, nous ajouterons une surcharge à lamp;rsquoexécution.
Lamp;rsquoutilisation du plan damp;rsquoexécution MySQL Workbench pour les enquêtes visuelles est un autre outil gratuit utile pour de telles enquêtes. Pour les bases de données fonctionnant sur MySQL 5.6 et plus tard, les résultats damp;rsquointerprétation peuvent être publiés lorsque json et MySQL Workbench convertissent json en un plan damp;rsquoexécution damp;rsquoinstruction visuelle:

Les problèmes sont automatiquement portés à votre attention en colorant une partie de la requête en fonction du coût. Comme nous pouvons le voir immédiatement, lamp;rsquoadhésion à la licence wp u woocomberce u Software U (alias l) pose un grave problème. Faisons quelques optimisations de requête! La résolution de la requête SQL est lente et la Section damp;rsquooptimisation de la requête effectue un balayage complet de la table, que devriez éviter autant que possible parce quamp;rsquoelle utilise une colonne Order _ ID qui namp;rsquoest pas indexée comme une connexion entre la table WP woocomberce Software licenses et la table WP posts. Il samp;rsquoagit damp;rsquoun problème courant avec les requêtes lentes et peut être facilement corrigé pour améliorer les performances des requêtes.
Index Order _ ID est un élément très important pour identifier les données dans la table. nous effectuons une requête de cette façon, nous devrions avoir un index sur la colonne, sinon MySQL scannera chaque ligne de la table ligne par ligne jusquamp;rsquoà ce que les lignes nécessaires soient trouvées. Ajouter un index et voir sa fonctionnalité: créer un index sur la licence WP _ woocomberce Software ID (order ID)

Wow, en ajoutant un index, nous pouvons réduire le temps de requête de plus de 5 secondes, bon travail! Mais pourquoi samp;rsquoarrêter ici?
Voici les résultats des propriétés statiques:
Classe WC _ Software Subscription {protected Static $subscriptions = array () public static Function get user subscriptions ($user id) {if (problem (Static: $subscriptions [$User ID]) {return Static: $subscriptions [$User ID]) Wpdb global USD SQL =

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins