L'utilisation d'une connexion persistante pour se connecter au serveur de base de données MySQL n'est pas toujours une bonne option. Chaque connexion utilise des ressources, y compris de la mémoire, des tampons, des caches de table ou de threads en interne dans MySQL et des sockets, des fichiers ouverts ou une activité d'E/S au niveau du système d'exploitation. Ainsi, lorsque de nombreuses connexions persistantes sont ouvertes mais pas fermées une fois les transactions terminées, les ressources du système peuvent épuiser et dégrader les performances du serveur Web ou, dans le pire des cas, provoquer une défaillance HTTP. De plus, si une connexion persistante est bloquée, inactive ou devenue obsolète ou n'est plus utilisée, elle n'est pas terminée et le serveur MySQL ne la fermera que pour libérer la ressource occupée par la connexion après environ 28800 secondes (8 heures) par défaut à moins que modifié les paramètres de délai d'attente dans les fichiers de configuration my.cnf. Ces quelques facteurs peuvent entraîner des problèmes tels que MySQL refusant de nouvelles connexions à la base de données ou un serveur lent si les applications ne gèrent pas correctement les connexions persistantes.
Ainsi, si vous n'êtes pas des webmasters expérimentés, n'essayez pas de modifier WordPress pour utiliser des connexions persistantes.
Cependant, pour les blogueurs qui ont un blog occupé et volumineux, et qui sont confrontés à des contraintes de mise à niveau des spécifications du système d'hébergement Web, et qui ne souhaitent pas utiliser un plug-in de mise en cache de page statique tel que WP-Cache, la connexion persistante est une option disponible pour régler et optimiser le serveur Web. pour voir si la diffusion de la page Web peut être plus rapide. La connexion persistante permet à la connexion d'être ouverte une fois et ne sera pas fermée à la fin de l'exécution du script. Au lieu de cela, le lien est conservé dans le pool et restera ouvert pour une utilisation future. Ainsi, l'utilisation de connexions persistantes éliminera le processus d'ouverture et de fermeture de la connexion. Cela réduira indirectement les frais généraux du serveur liés à la connexion MySQL, tels que l'authentification pour établir une connexion là où une seule fois est nécessaire, économisant du trafic réseau supplémentaire et des ressources utilisées pour gérer une connexion supplémentaire. De plus, il pourrait y avoir des caches au niveau de la connexion, qui doivent être remplis pour des performances correctes, et potentiellement réduire le nombre de connexions à la base de données.
Par défaut, WordPress utilise la fonction mysql_connect() qui établit une nouvelle connexion à la base de données sur chaque page. La fonctionnalité de connexion persistante nécessitera la fonction mysql_pconnect() qui utilise exactement la même API, mais dispose d'un regroupement de connexions intégré pour maintenir les connexions actives entre les requêtes. Donc, pour passer à l'utilisation d'une connexion persistante pour exécuter WordPress, la fonction mysql_connect() doit être remplacée par mysql_pconnect().
Pour activer et utiliser des connexions persistantes avec WordPress, connectez-vous simplement à votre hôte Web avec SSH (ou Telnet non sécurisé) et changez de répertoire pour le répertoire d'accueil Webroot où le blog WordPress est installé.
Localisez et modifiez le wp-config.php fichier, et ajoutez les lignes suivantes (ou modifiez les valeurs suivantes si les constantes existaient déjà) :
define('USE_PCONNECT', true); define('WP_CACHE', false);
WordPress et PHP (tant que vous ne désactivez pas mysql.allow_persistent dans PHP.INI) utiliseront immédiatement des connexions persistantes pour se connecter à la base de données MySQL. Cela vaut la peine d'essayer quel paramètre convient le mieux à votre environnement.
Les étapes suivantes sont également réalisables, mais impliquent de pirater le fichier principal de WordPress, et donc non recommandées, et laissées dans cet article à titre de référence uniquement.
Changer de répertoire en wp-includes annuaire. Dans le répertoire wp-includes, il y a wp-db.php dossier. Utilisez n'importe quel éditeur de texte tel que vi pour modifier wp-db.php. Recherchez ou localisez la fonction de mysql_connect (ou @mysql_connect ). Il n'y a qu'une seule instance de mysql_connect. Changez simplement mysql_connect en mysql_pconnect , puis enregistrez et quittez wp-db.php.