web-dev-qa-db-fra.com

Mon hôte partagé me dit que mon site Web est étranglé à cause de MySQL, que puis-je faire?

Mon hôte partagé me dit que mon site Web est étranglé à cause de MySQL, que puis-je faire?

Je ne connais pas suffisamment le réglage des performances de MySQL. En général, MySQL ne fonctionne que pour moi. Quelles questions dois-je poser pour savoir comment résoudre ce problème? Est-ce la mémoire? Est-ce que ce processeur? Est-ce que cette configuration de MySQL? En supposant que j'aie accès au journal de requête lent, que puis-je faire pour en comprendre le sens?

Je demande cela en tant que générique, mais je l'ai rencontré à plusieurs reprises et c'est généralement un hôte de qualité inférieure. Passer à un meilleur hôte et implémenter la mise en cache fait généralement l'affaire. Mais quels sont les paramètres les plus importants à prendre en compte par ordre de priorité?

PDATE: J'espère que cela sera une liste de contrôle "Comment puis-je savoir si MySQL est configuré correctement sur mon compte d'hébergement partagé?" questions de type.

7
artlung

Probablement la chose la plus importante à vérifier est que vous avez des clés sur les champs sur lesquels vous interrogez. Avoir les bonnes clés et les bons champs rendra vos requêtes beaucoup plus rapidement. Vous pouvez déterminer si vos clés sont utilisées en exécutant la requête avec EXPLAIN devant elle, par exemple EXPLAIN SELECT * FROM table WHERE id = 2;. Vous pouvez ajouter EXPLAIN aux requêtes dans le journal de requêtes lentes pour voir ce qu'elles sont. sont ou n'utilisent pas.

Vous pouvez également envisager de mettre en cache des données si vous sélectionnez souvent les mêmes données dans une table. Cela peut être effectué en stockant la page résultante (telle que le code HTML réel ou une partie de celle-ci) ou en stockant le résultat de la requête (telle que les ID, de sorte que vous n'avez pas à interroger un champ de texte).

Vous voudrez également éviter d'interroger trop souvent les champs de texte avec LIKE %text%. Ceux-ci peuvent être assez lents.

En outre, recherchez sur le Web l'optimisation des requêtes MySQL (ou une combinaison de celles-ci). Il existe une tonne de méthodes différentes et toutes les méthodes ne fonctionneront pas sur votre site; il est donc plutôt erroné, mais les clés vont certainement améliorer la vitesse de MySQL et en réduire la charge.

8
Darryl Hein