|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre actif
![]() Inscription : juillet 2004 Messages : 277 ![]() |
Je m'occupe d'un site qui a maintenant une assez forte fréquentation.
Ce site est développé en php et utilise un serveur de base de données MySQL. Pour la gestion, j'utilise l'outil phpmyadmin. Ce dernier possède un onglet status dans lequel on a plusieurs indicateurs sur le SGBD. Je ne connais pas bien tous ces indicateurs et leur signification, bien qu'il y ait une petite explication à coté. Certains indicateur ont un nombre en rouge, il semble que ce soit un warning, indicant que l'on peut optimiser certaines variables ou requêtes. En ce qui concerne les requêtes, je n'ai actuellement pas le temps de les modifier pour les optimiser, de plus, je pense qu'elles le sont déjà assez. Il se peut cependant qu'il en reste quelques unes vraiment lentes, mais je vais regarder dans le log_slow_query pour avoir plus d'indication. J'ai surtout besoin de savoir quelles sont les paramètres du serveur que je dois optimiser sur mon serveur MySQL. Voici les indicateur qui sont en rouge dans phpmyadmin : Code :
Code :
Liste des variables serveur MySQL Code :
Avez-vous des conseils sur l'optimisations des paramètres? Le serveur dispose de Go de mémoire vive, il n'y a que MySQL qui tourne dessus. Le site tourne sur d'autres serveurs. Merci!
__________________
Хајде Јано коло да играмо |
||||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : mai 2002 Messages : 1 022 ![]() |
Le nombre de requêtes lentes et donc consommatrices de ressources est important, très important même. Vous devriez archivez ces requêtes lentes. Ensuite une fois identifiée, tentez de les optimiser au niveau de la syntaxe SQL puis au niveau de l'indexation de vos tables.
5.9.5. Le log des requêtes lentes
__________________
Alexandre T. PHP5/MySQL5 Codes prêts à l'emploi 30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc... Mes articles |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Inscription : juillet 2004 Messages : 277 ![]() |
Nous longuons déjà ces requêtes lentes.
Je n'ai pas encore accès à ces fichiers fichiers le log, mais ça se fera dans la semaine je pense. Ma question sur portait plutôt sur les paramètres de cache MySQL. En ce qui concerne les requêtes lentes, je les analyserai plus tard dès que j'aurai les logs. Cependant, dans mon cas, il s'agit de bien différencier les requêtes provenant du front office, du backoffice ou depuis les batch. En effet, les requêtes provenant du back office ou des batch peuvent se permettre d'être lente car elle ne sont pas souvent appelées. Par contre, depuis le front, les requêtes doivent être optimisées au maximum. En ce qui concerne les index, je me heurte à un problème conséquent. En fait, j'ai des prix d'articles qui change selon l'heure (happy hour, etc). Je doit donc utiliser NOW() dans la plupart de mes requêtes de demander d'article et de prix afin de situer dans quelle plage d'heure et de prix on est. J'ai lu que les index n'étaient pas utilisés lorsque l'on faisait appel à cette fonction. Quelle est la solution? Merci dans tous les cas, et je reviendrai sur le forum quand j'aurai plus d'informations sur mes requêtes lentes et sur les requêtes n'utilisant pas d'index (nous avons logué ça aussi).
__________________
Хајде Јано коло да играмо |
|
|
00
|
|
|
#4 | ||
|
Membre actif
![]() Inscription : juillet 2004 Messages : 277 ![]() |
Je continue sur mes questions d'optimisation.
Je logue les requêtes lentes et les reqêtes n'utilisant pas d'index. En ce qui concerne les reqêtes lentes, je n'en ai pas à plus de 5 secondes, c'est donc ok. Par contre, j'ai un bon paquet de requêtes qui n'utilisent pas les index. J'ai fait un explain sur celle-ci : Code :
1 SIMPLE m ALL PRIMARY NULL NULL NULL 68 Using temporary; Using filesort En fait, il semble que sur la table manufacturers, il fasse une recherche sur 68 lignes et qu'il n'utilise pas d'index mais il fait un tri. C'est très étrange car il n'y a pas de tri sur cette table. Alors, j'ai pensé qu'il pouvait s'agir plutot du tri sur style_potent qui est à la fin. Cependant, j'ai bien un index sur ce champ. Je ne comprends donc pas bien d'ou vient le fait qu'il n'utilise pas d'index. Vous avez une idée? Merci!!!
__________________
Хајде Јано коло да играмо |
||
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Inscription : juillet 2004 Messages : 277 ![]() |
Après moultes réflexion, il s'agit certainement plutôt du distinct qui génère une recherche séquentielle sur la table temporaire générée.
Il n'y a pas vraiment d'autre moyen de tester le distinct que d'analyser ligne par ligne les résultats. Donc je comprends mieux le problème. En fait, il faudrait que je n'utilise pas de mot clef distinct. Mais alors, mes résultats seront faux...
__________________
Хајде Јано коло да играмо |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com