•  » Outils
  •  » [Mysql] optimisation

#1 2010-01-21 10:39:42

vimages
Membre
2004-03-27
2429

[Mysql] optimisation

Bonjour
en premier lieu, je ne sais pas si ce sujet à sa place dans cette partie du forum, vous pouvez le déplacer si nécessaire...

Mysql !! Le gros morceau dans la gestion d'un serveur...

J'essaie depuis un moment de comprendre (à peu près) son fonctionnement pour tenter d'en optimiser les réglages...
Le soucis est que la doc disponible est la plupart de temps en Anglais :o(

Alors, je sais bien qu'il n'y à pas de recette miracle, que cela dépend du matériel, des autres parties logicielles utilisées.. et des sites que Mysql doit gérer...

Bon...
Toutefois, j'imagine que l'on doit pouvoir , à partir des logs, des outils d'analyses de Mysql, voir ce qui va ou ne va pas...

J'ai, par exemple, un rapport accessible via phpmyadmin, qui m'indique certains chiffres en rouge... il est question de clés, d'index...

je vous mets ci-dessous les quelques lignes dans lequelles apparaissent des chiffres en rouge..

Code:

Gestionnaire
Handler_read_rnd               182 M                     Le nombre de requêtes de lecture d'un enregistrement basée sur une position fixe. Ce nombre est élevé si vous faites de nombreuses requêtes qui nécessitent de trier les résultats. Vous avez probablement un grand nombre de requêtes qui demandent à MySQL de parcourir des tables en entier, ou vous avez des jointures qui n'utilisent pas correctement les clés. 
Handler_read_rnd_next       275 M           Le nombre de requêtes de lecture du prochaine enregistrement dans le fichier. Élevé si vous faites plusieurs parcours de tables. Ceci suggère que vos tables ne sont pas correctement indexées ou que vos requêtes ne sont pas écrites de façon à tirer parti des index que vous avez définis. 

Données temporaires 
Created_tmp_disk_tables         229 k         Le nombre de tables temporaires sur disque créées automatiquement par le serveur lors de l'exécution d'énoncés. Si la valeur du paramètre Created_tmp_disk_tables est trop grande, augmentez la valeur de tmp_table_size afin que les tables temporaires soient maintenues en mémoire au lieu d'être sur disque


Jointures 
Select_full_join                     13                              Le nombre de jointures qui n'ont pas utilisé d'index. Si cette valeur est supérieure à 0, vérifiez soigneusement les indexes de vos tables. 

Select_range_check                         8 613                                                    Le nombre de jointures sans clés qui vérifient l'utilisation de clé à chaque enregistrement. (Si ceci est supérieur à 0, vérifiez soigneusement les indexes de vos tables.) Select_scan 321 k Le nombre de jointures qui ont nécessité le parcours complet de la première table. 


Tables 
Opened_tables                27 k                          Le nombre tables qui ont été ouvertes. Si trop élevé, votre cache de table est probablement trop petite. 

Table_locks_waited                 1 271                        Le nombre de fois qu'un verrou de table n'a pu être acquis immédiatement, induisant un temps d'attente. Si ce nombre est élevé et que vous éprouvez des problèmes de performance, commencez par optimiser vos requêtes, puis subdivisez vos tables ou encore utiliser la réplication.

Hors ligne

#2 2010-01-22 13:40:54

Gotcha
Ex Equipe Piwigo
Pierrelatte (26)
2007-03-14
13331

Re: [Mysql] optimisation

Grum et VDigital devraient pouvoir comprendre quelque chose. N'hésites pas à les en notifier :-)


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#3 2010-01-22 16:52:14

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Mysql] optimisation

Tous ces messages sont clairs.
Ils sont clairs et pas que Grum ou moi, aussi pour d'autres dans l'équipe.
Néanmoins (pour ceux qui suivent, j'adore ce terme autant que les "sushis"), il faut du temps pour les analyser, envisager des éventuelles modifications lesquelles peuvent provoquer d'autres anomalies.
Bref du temps, mais on regardera.

Exemple:

Gestionnaire
Handler_read_rnd               182 M                     
Le nombre de requêtes de lecture d'un enregistrement basée sur une position fixe.
Ce nombre est élevé si vous faites de nombreuses requêtes qui nécessitent de trier les résultats.
Vous avez probablement un grand nombre de requêtes qui demandent à MySQL de parcourir des tables en entier, ou vous avez des jointures qui n'utilisent pas correctement les clés.

=> Il faut trouver les requêtes correspondantes, faire des "explains", et imaginer d'autres solutions.
C'est souvent une clause 'where' qui n'est pas assez filtrante "Privacy level" ou "private" ou ...
C'est parfois des tris 'order by' en trop, pas besoin de trier les résultats ou tri déjà effectué au niveau d'un group by.
Ou pire des jointures (rapprochement de 2 tables) qui n'utilisent pas les clés existantes => Index supplémentaire à créer mais nous avons vu que parfois ajouter un index pour une requête peut ralentir d'autres requêtes.

Ça c'est pour une exception de la liste... et rien que pour celle-ci des heures à essayer de trouver une meilleure solution.
Le point n'est pas près d'être clos.
;-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#4 2010-01-22 16:55:15

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16918

Re: [Mysql] optimisation

Genre les catégories qui se remplissent toutes seules avec les Tags ?


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#5 2010-01-22 17:03:06

vimages
Membre
2004-03-27
2429

Re: [Mysql] optimisation

Merci de ces explications Vincent.

Je cherche depuis longtemps à optimiser l'accessibilité et la visibilité des galeries, surtout la principale.. la plus grosse.. d'ou mes posts du moment.. Il est des périodes ou j'ai un peu plus de temps (relatif) et j'en profite pour travailler sur ces sujets.

Content de comprendre que vous savez appréhander ces questions, quoique je le savais, je devrais plutot dire content de voir que vous vous en occupez...
Si cela semble long et difficile, il faut que cette préoccupation demeure prioritaire. la BDD est le noeux  de la galerie, et dès que celle-ci contient beaucoup d'informations à traiter, elle est soit le garant d'une bonne fluidité de la visite soit le caillou qui fera coincé une belle mécanique.

Nos visiteurs attendent toujours plus de vitesse dans leur navigation, nous devons assurer pour ne pas les décevoir.

merciiii...
amitiés,
éric.

Hors ligne

#6 2010-01-22 17:25:22

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Mysql] optimisation

ddtddt a écrit:

Genre les catégories qui se remplissent toutes seules avec les Tags ?

Non, il n'y a rien dans la db pour ces "catégories" qui n'en sont pas.
Ces catégories sont l'équivalent de recherches stockées ou d'accès par tags.
Ce n'est rien du tout.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#7 2010-01-22 17:51:04

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16918

Re: [Mysql] optimisation

VDigital a écrit:

ddtddt a écrit:

Genre les catégories qui se remplissent toutes seules avec les Tags ?

Non, il n'y a rien dans la db pour ces "catégories" qui n'en sont pas.
Ces catégories sont l'équivalent de recherches stockées ou d'accès par tags.
Ce n'est rien du tout.

Merci de ta réponse :-)


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#8 2010-01-22 18:41:46

tosca
Former Piwigo Team
Cévennes (Gard)
2006-09-23
3818

Re: [Mysql] optimisation

VDigital a écrit:

Ce n'est rien du tout.

MDR

Hors ligne

#9 2010-01-22 21:15:18

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Mysql] optimisation

Oui, je l'aime bien cette formule.
Un peu comme ... Non, je les garde pour un autre jour.
;-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

  •  » Outils
  •  » [Mysql] optimisation

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact