Ce qui peut provoquer un “trop grand nombre de connexions de base de données”
Mon site WordPress eu une "erreur de l'établissement de la connexion à la base de données" massage.
Mon hôte m'a informé que c'était parce que mon "utilisateur" qui avait trop de connexions de base de données qui ont été ouverts à la fois. Cela a provoqué une erreur de prise de connexions supplémentaires, et donc le massage.
Cela a été corrigé en tuant l'impasse des connexions de base de données. Il y avait un nombre de connexions de la copie de données dans des tables temporaires, mais le blocage a été causée par un grand nombre de recherches dans l'attente d'une mise à jour.
Quelqu'un peut-il m'expliquer comment cela peut arriver, et comment l'éviter?
(p.s: que WP installation a plus de 2000 postes)
OriginalL'auteur Tal Galili | 2010-10-09
Vous devez vous connecter pour publier un commentaire.
Dans un environnement d'hébergement partagé ce comportement peut se produire plus tôt ou plus tard que votre blog commence à voir plus de trafic - les détails que vous avez mentionné sonores comme ils peuvent être liés à mal écrit plugins WordPress (pour des raisons de performances, assurez-vous que tous vos plugins mis à jour avec la base WordPress).
Vous pouvez également envisager de WP Super Cache si vous ne l'avez pas déjà.
OriginalL'auteur danlefree
Une chose que j'ai vu une grande aide avec WP et de la base de données de vitesse est de nettoyer votre base de données de la poste et la page des révisions. WP conserve une copie intégrale de l'édition, la révision, et avec 2000 messages, votre base de données pourrait être énorme. Run cela que d'une requête SQL dans phpmyadmin pour effacer les révisions. J'ai vu les bases de données de chute de 75% de la taille et de courir beaucoup plus vite après compensation des révisions. Changer le préfixe de table si vous l'avez modifiée lors de l'installation de WP, et l'exécution d'une sauvegarde au préalable.
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'
Puis optimiser les tables après l'exécution de cette requête à la fin de compensation de la révision, soit à partir du menu déroulant dans phpmyadmin pour optimiser l'ensemble de la base de données, ou par une autre requête pour la table posts:
Alors vous pouvez empêcher la poste/page révisions de s'accumuler à nouveau en ajoutant cette ligne à wp-config.php pour arrêter de révision:
define ('WP_POST_REVISIONS', FALSE);
Ou cette ligne pour sélectionner le nombre de révisions à garder:
define('WP_POST_REVISIONS', 3);
Si vous avez accès à votre fichier de configuration de MySQL, regarder dans les paramétrage de MySQL pour de meilleures performances avec un utilitaire comme GitHub - major/MySQLTuner-perl.
OPTIMIZE TABLE wp_posts;
après que supprimerVous avez raison. J'ai oublié que. Édité réponse.
m'a vraiment aidé ) , la grande-conseils
OriginalL'auteur markratledge
Il y a deux options que vous pouvez regarder,
Les connexions persistantes essaie d'utiliser la même connexion avec le serveur MySQL, et plus si possible (la connexion n'est pas fermée entre les requêtes PHP).
MySQL max_connections permet d'augmenter la quantité de connexions possibles accepté par le serveur.
OriginalL'auteur Ring Ø
Je ne suis pas familier avec wordpress, plus précisément, voici donc mon point de vue à partir d'une base perf de réglage point de vue:
Tout d'abord, je voudrais creuser pour comprendre pourquoi la mise à jour est aussi long. Il est peut-être un mauvais plan de requête qui nécessite le paramétrage de votre DB d'indexation de la stratégie.
Si la mise à jour ne peut pas être accéléré, et vous êtes prêt pour vos recherches pour éventuellement lire des données qui n'est pas pleinement engagé (ce qui pourrait être ok pour un blog, mais pas une application de comptabilité par exemple), alors vous pouvez changer le Sélectionne à inclure NOLOCK pour éviter le blocage de la mise à jour.
Voir cette SORTE de question pour plus d'info
OriginalL'auteur RyanHennig
Trop grand nombre de connexions de base de données peut se produire lorsque vous avez trop de connexions de base de données en cours d'utilisation (bien évidemment), c'est plus de personnes en cours d'exécution sur votre site à un moment que le max de connexions autorisées. Combien de connexions à votre serveur mysql?
Êtes-vous à l'aide de mysql_pconnect() ou tout simplement mysql_connect()? Avec le premier, la connexion reste ouverte plus longtemps et vous ne pouvez pas le forcer à fermer.
OriginalL'auteur Explosion Pills