You are on page 1of 17

MySQL Enterprise Monitor et le Query Analyzer

Surveillance des requêtes défectueuses dans les applications

April 2010

Copyright © 2010, Sun Microsystems

..............................................12 Pour en savoir plus............................................................................................8 Recherche et résolution de problèmes à l'aide du Query Analyzer......................................................................................13 Annexe A – Déploiements de MySQL Enterprise Monitor et du Query Analyzer ....7 Contrôle des performances et de l'évolutivité .........................................14 Copyright © 2010..................................................3 Défis les plus courants en matière de performance et d'évolutivité……………………….9 Conclusion ....................3 Stratégie d'application : performance et évolutivité !..5 Répondre aux défis de MySQL Enterprise Monitor avec le Query Analyzer...........Table des matières Introduction ................................................... Sun Microsystems Page 2 .................................................5 Méthodes courantes de surveillance et de réglage des requêtes défectueuses.........................................................................................................................

l'évolutivité est quelque peu Copyright © 2010. ce document décrit aussi comment utiliser cet outil pour régler et optimiser du code SQL en cours de développement. Outre les fonctionnalités du nouveau Query Analyzer de MySQL Enterprise Monitor. La configuration de base la plus rudimentaire implique une application connectée directement à une base de données MySQL back-end qui gère toutes les activités et les demandes émanant de l'utilisateur. Qui plus est. MySQL est souple puisqu'il prend en charge des configurations évolutives pour des applications OLTP à volume moyen à élevé et pour les sites les plus exigeants et les plus consultés sur le Web.Introduction La plupart des DBA et développeurs savent bien qu’un code SQL médiocre peut avoir un impact négatif sur les performances et le débit des applications. l'application est configurée dans le but de se connecter et de transmettre l'intégralité du code des requêtes directement à un serveur MySQL . La Figure 1 ci-dessous illustre la configuration généralement adoptée : Figure 1 : Application configurée avec connexion directe à la base de données Dans cet exemple. toute demande est alors traitée et les résultats sont renvoyés au client qui a soumis la demande. Dans cette configuration. malgré tous vos efforts. Stratégie d'application : performance et évolutivité ! La capacité d'évolutivité d'une application dépend généralement de la manière dont cette dernière sera utilisée au bout du compte. le réglage et l’optimisation de vos bases de données back-end ne permettront pas de remédier aux problèmes de performance dus à du code médiocre. Même s’il s’est exécuté correctement dans l’environnement de développement et donne de bons résultats au sein du système et dans les scénarios de test d’assurance qualité. Ce document examine les scénarios d'utilisation et les défis auxquels sont couramment confrontées les personnes chargées de gérer des activités de développement et de support avec MySQL. un code peut donner de piètres résultats dans des environnements de production. des services de support technique et des logiciels de surveillance et de base de données qu'il contient et qui ont été conçus dans le but de mieux faire face à ces défis. Sun Microsystems Page 3 . en particulier. puis comment surveiller des applications après leur mise en production. Il offre également un aperçu de MySQL Enterprise et.

chargé à son tour de propager les écritures sur les esclaves sous-jacents. disponible quelle que soit la version du serveur MySQL. est la réplication. Utilisée par un grand nombre d'entreprises en ligne et présentes sur le Web. surprend également par sa fiabilité et ses taux élevés en matière de vitesse de transfert. Sun Microsystems Page 4 . respectivement. la réplication MySQL permet de procéder au « déploiement horizontal » d'une application en faisant appel à différents serveurs physiques pour créer une seule base de données logique et offre ainsi de biens meilleures performances qu'en plaçant une application tout entière sur un seul ordinateur. sauf si une technologie d'équilibrage de charge plus avancée a été mise en place. Réplication et déploiement horizontal MySQL L'une des fonctionnalités les plus populaires. Copyright © 2010. La capacité de lecture peut être renforcée en ajoutant plus d'esclaves en lecture à la topologie. une partie ou l'ensemble des composants d'une application sur de nombreux serveurs différents. La Figure 2 ci-dessous illustre la configuration souvent adoptée dans ce cas : Figure 2 : Application configurée pour l'équilibrage de charge en lecture/écriture au niveau de l'application Dans cette configuration. Cette solution. laissant le champ libre au maître pour gérer les écritures. Dans cette optique. de la charge en écriture/lecture vers le maître et les esclaves. de manière horizontale. l'application en ligne reconnaît les maîtres et les esclaves qui composent une topologie de réplication MySQL. Évolutivité et performance sont garanties au moyen des activités suivantes : • • • • Équilibrage. Si certaines applications sont conçues afin de relier et de transmettre l'ensemble des requêtes à un maître.limitée mais peut être obtenue par une mise à niveau de la puissance de traitement du serveur sur lequel MySQL est exécuté. Les esclaves sont mis à jour de manière asynchrone. extrêmement simple à utiliser et à configurer. beaucoup sont configurées dans le but d'acheminer les activités en lecture vers des esclaves dédiés. Seules les écritures sont transmises à un maître (les lectures sont acheminées vers les esclaves). Les lectures sont généralement traitées à tour de rôle sur les esclaves lus. au niveau de l'application. la réplication MySQL sert traditionnellement à répliquer.

Dans ce contexte. Si MySQL est réputé pour ses performances. Les requêtes nuisibles ou les bonnes requêtes devenues défectueuses sont difficiles à détecter à des fins de réglage. Un élément qui vient compliquer les choses est que. même au niveau de la page. chez un concurrent. Qui plus est. en particulier en matière de requêtes peu performantes : • • • Le serveur MySQL est mal équipé pour la collecte des données de performance. il trouve néanmoins ses limites dans le suivi des activités aux niveaux de l'utilisateur et de l'application. réserver. MySQL propose plusieurs options qui aideront les DBA et les développeurs à localiser et résoudre des requêtes défectueuses. Les performances d'une application en ligne se mesurent souvent d'après les temps de réponse des utilisateurs ou. pire. la lenteur des temps de réponse est davantage liée au code SQL au niveau de l'application qu'aux charges système. mais ils concernent des données de bas niveau et ne sont pas centralisés. Le client sollicite le chargement d'une nouvelle page à partir de l'application et attend la réponse. en somme. MySQL retourne les données de la page à l'application.Défis les plus courants en matière de performance et d'évolutivité Les deux exemples simples ci-dessus présentent des configurations élémentaires fréquemment employées dans le cadre du déploiement d'applications MySQL évolutives. C'est ce défi que doivent relever en particulier les applications Web qui sont en permanence la cible de mises à jour ou qui consomment une grande quantité de code SQL dynamique. ils perdront en opportunité commerciale comme en clientèle. L'application transmet la demande à MySQL et attend la réponse. On distingue notamment les options suivantes : Copyright © 2010. par conséquent.1. Le travail de recherche de l'origine d'un ralentissement est un jeu d'enfant mais le véritable défi consiste à localiser et à en résoudre la cause. surtout si le problème est ancré dans le code corrompu par la mise à niveau de l'application. Les journaux de requêtes sont d’une certaine aide. une diminution des commandes ou des appels clients aux périodes de pointe. le journal des requêtes lentes devait être manuellement activé. cela signifie que les clients iront faire leurs achats. d'après la vitesse avec laquelle les demandes de chargement de nouvelles pages sont traitées. les performances d'un site Web en particulier. dans nombre de cas. ne consulteront jamais les informations sur les articles et les services qui y sont proposés. Pour les sociétés d'e-commerce. peuvent avoir une incidence sur le bilan de la société hôte . la suppression d'un index ou par une combinaison de variables saisies par l'utilisateur. 4. plus précisément. L'application charge la nouvelle page sur le client. 3. Mise à part la surveillance des performances de base du système d'exploitation et de MySQL. si le site Web d'une société est lent. Avant la version 5. L'élément primordial à retenir est que chacun de ces exemples suit le même mécanisme de base : 1. bien souvent. Cette situation peut entraîner une perte de productivité ou. il n'existe aucun signe permettant de présager la détérioration des performances et. Sun Microsystems Page 5 . 2. jouer ou se procurer leurs logiciels ailleurs. Dans tous les cas. faire des rencontres. même l'application interne la plus génératrice de productivité s'avèrera inutile si les clients doivent attendre à chaque demande de chargement d'une nouvelle page. le défi majeur consiste à diagnostiquer les problèmes de performance nichés dans le code SQL au niveau de l'application. sa fiabilité et sa simplicité d'utilisation. les consommateurs auront tendance à le bouder et. Méthodes courantes de surveillance et de réglage des requêtes défectueuses Même avec les limites décrites ci-avant.

il est également possible de le configurer afin d'y consigner toutes les requêtes qui n'utilisent aucun index. l'heure d'exécution. enfin.1] # Query_time: 8 Lock_time: 0 Rows_sent: 20 Rows_examined: 243661 SELECT part_num FROM `inventory`. C'est pourquoi il est couramment activé uniquement en cas de ralentissement ou s'il est géré au moyen de scripts à l'aide de la commande FLUSH LOGS. Les requêtes consignées dans le journal peuvent être résumées à l'aide de la commande mysqldumpslow mais cette opération pose toujours quelques difficultés et prend du temps. Une entrée classique se présente sous la forme suivante : # Time: 08073101 16:25:24 # User@Host: root[root] @ localhost [127. la base de données. La syntaxe obtenue se présente comme suit : mysql> SHOW FULL PROCESSLIST\G *************************** 1. À partir de la version 5. le cas échéant).0.`parts` WHERE (`vendor` = "foo") ORDER BY `delivery_datetime` DESC LIMIT 100. le journal devient très vite très volumineux. Les entrées du journal doivent être analysées et manuellement triées afin de déterminer les requêtes qui étaient en cours d'exécution lors du ralentissement observé des performances. Copyright © 2010. le contenu des requêtes. SHOW PROCESSLIST La liste de processus MySQL vous permet de savoir quels processus sont en cours d'exécution sur vos serveurs MySQL. Sun Microsystems Page 6 . comprise traditionnellement entre 1 et 10).0. il pose des limites connues : • • • Avant la version 5. l'utilisateur.1. *************************** 2.Activation du journal des requêtes lentes Le journal des requêtes lentes est activé en démarrant le serveur MySQL surveillé avec l'option --logslow-queries[=nom_fichier]. les lignes lues et. le journal dresse la liste des requêtes plus longues que X secondes (valeur définie par l'utilisateur. puis redémarré pour être activé.0 de MySQL 5. la date et heure de lancement de la requête. Une fois activé. Si le journal des requêtes lentes offre un bon aperçu des requêtes coûteuses. les lignes transmises au client. l'hôte de départ. La mise en forme des résultats de cette commande inclut l'ID de processus. l'état et des informations (notamment la requête d'exécution. Les entrées du journal des requêtes lentes sont mises en forme en vue d'y inclure divers éléments. row *************************** Id: 2 User: MyUser Host: localhost db: inventory Command: Query Time: 1004 State: Sending Data Info: SELECT part_num FROM `inventory’. notamment l'adresse IP du client. le serveur MySQL devait être arrêté. le type de commande. row *************************** Id: 1 User: MyUser Host: localhost db: merlin Command: Query Time: 1030455 State: Sending Data Info: SELECT * from advisors. Une fois activé.0.

elles exigent beaucoup d'efforts et des scripts personnalisés ou des solutions tierces sont nécessaires pour intégrer le processus de bout en bout. analyse le journal des requêtes lentes à la recherche de requêtes dépassant un seuil d'exécution défini . vous pouvez faire appel à l'instruction EXPLAIN pour examiner si les index sont exploités de manière efficace.00 sec) Il est possible d'automatiser chacune de ces options au moyen de scripts personnalisés. Un scénario classique implique l'usage de scripts personnalisés qui : • • • • sont déployés sur chaque serveur MySQL . ce qui ne fait que compliquer les choses à mesure que le nombre de serveurs MySQL à surveiller augmente. Si ces options sont utiles aux DBA et aux développeurs pour résoudre les problèmes liés à SQL. informent le DBA en cas de problème. part_num 1 row in set (0. L'instruction EXPLAIN prend en charge de nombreuses options mais elle se présente habituellement sous la forme suivante : Query in: EXPLAIN SELECT part_num FROM `inventory`. un logiciel de base Copyright © 2010.00 sec) key vendor key_len ref rows Extra 3 NULL 3872 Using WHERE L'instruction EXPLAIN est véritablement la dernière étape du processus de résolution d'un code de requête défectueux. capturent et rassemblent les résultats à des fins d'analyse . Sun Microsystems Page 7 . requête EXPLAIN. En réalité. Le DBA parcourt alors manuellement les données agrégées afin d'identifier les serveurs MySQL dotés de requêtes susceptibles de provoquer un goulot d'étranglement. Le reste de ce document se concentre sur l'utilisation de MySQL Enterprise Monitor avec le Query Analyzer et démontre comment ce dernier permet de faire face aux difficultés courantes liées à la création et au déploiement d'applications dans MySQL. savoir si un tri des fichiers est nécessaire et quelles tables et colonnes sont interrogées. un grand nombre de DBA font appel conjointement au journal des requêtes lentes et à la commande SHOW PROCESSLIST pour surveiller les requêtes médiocres de leurs serveurs MySQL. exécutent la commande SHOW PROCESSLIST. EXPLAIN Après avoir identifié une requête défectueuse. Le DBA peut affiner le code en y ajoutant des index. Répondre aux défis de MySQL Enterprise Monitor avec le Query Analyzer MySQL Enterprise Monitor et l'outil Query Analyzer sont des composants intégrés à MySQL Enterprise. EXPLAIN out: ID select_type table type possible_keys 1 SIMPLE parts ref vendor. Cette opération est effectuée généralement de manière itérative (réglage. puis réglage supplémentaire) jusqu'à ce que la requête soit réglée ou fonctionne conformément aux exigences du contrat de niveau de service. MySQL Enterprise est une offre commerciale qui propose des outils de surveillance. en modifiant la longueur ou le type de données des colonnes de table ou en changeant la structure de la requête même en vue d'améliorer les performances.2 rows in set (0.`parts` WHERE (`vendor` = "foo") ORDER BY `delivery_datetime` DESC LIMIT 100.

Une étude récente des utilisateurs de MySQL a révélé qu'en moyenne un DBA MySQL prend en charge cinq à dix serveurs MySQL physiques. 7j/7. durabilité) avec des fonctions de validation complète. MySQL Enterprise inclut trois composants principaux : MySQL Enterprise Server. ce service garantit une disponibilité permanente et un fonctionnement optimal de vos applications critiques d'entreprise. MySQL Enterprise Server est configuré pour de hautes performances et prend en charge à la fois les transactions sécurisées et compatibles ACID (atomicité. cohérence. Services de support technique MySQL : MySQL Enterprise comprend un support technique disponible 24h/24. La même étude à également démontré que les personnes qui ont recours à la réplication MySQL pour déployer des applications Web à fort trafic ajoutent. les serveurs MySQL ont tendance à se propager rapidement. Le support technique MySQL offre notamment les services suivants : • • • Support en ligne autonome : la base de connaissances est un outil autonome qui vous permet d'accéder à plus de 2 000 articles techniques sur des sujets propres à MySQL qui répondront en un clin d'œil à vos questions et vous aideront à résoudre des problèmes. ce qui vous permet de savoir quand intervenir pour le réglage de vos systèmes. par courrier électronique ou en ligne pour une résolution rapide de vos problèmes techniques. Sun Microsystems Page 8 . MySQL Enterprise Monitor est un « assistant Copyright © 2010. Fonctionnant entièrement depuis votre datacenter. de restauration.0 et Enterprise 2. Résolution des problèmes : vous permet de contacter directement l'équipe du support technique de MySQL par téléphone. • les réseaux de communication complexes.de données et un service de support technique aux entreprises développant des services et des applications critiques d'entreprise à haute disponibilité. Il vous apporte également un avis d'expert sur les problèmes rencontrés. MySQL Enterprise Monitor surveille en permanence l'ensemble de vos serveurs et applications MySQL et vous informe de manière proactive sur des problèmes potentiels et des possibilités de réglage avant qu'ils ne génèrent des temps d'arrêt coûteux. Support avancé pour solutions de haute disponibilité et d'évolutivité MySQL : MySQL Enterprise propose un service de support technique complet pour d'autres fonctionnalités avancées de MySQL et solutions tierces qui favorise l'évolutivité de vos applications en ligne en matière de disponibilité et de performance. de reprise après incident et de verrouillage au niveau de la ligne. soit la version mise à jour la plus fiable et la plus sécurisée de MySQL à même d'offrir une solution rentable pour : • les applications en ligne Web 2. avec le temps.0 évolutives . isolation. pour tous vos serveurs MySQL et MySQL Enterprise Monitor . Contrôle des performances et de l'évolutivité L'un des défis majeurs que doivent relever les personnes chargées de développer et de gérer des applications créées avec MySQL est que. MySQL Enterprise Monitor et Advisors avec Query Analyzer : application Web distribuée déployée conformément à la sécurité de votre pare-feu d'entreprise. en moyenne. un nouvel esclave en lecture à leur topologie tous les deux mois. avec chacun ses besoins spécifiques en matière d'administration et de surveillance. surtout lorsque le déploiement de MySQL intervient dans le cadre d'une stratégie de déploiement horizontal. • les déploiements d'entrepôts de données et de solutions d'informatique décisionnelle de plusieurs téraoctets . • les applications de traitement des transactions en ligne (OLTP) pour l'entreprise . MySQL Enterprise Monitor a été conçu pour vous aider à gérer plus de serveurs MySQL en y consacrant moins de temps et moins d'efforts.

Grâce à ce tableau de bord. de performance et de disponibilité les plus élevés. puis rechercher et résoudre des problèmes avant qu'ils n'empirent ou n'entraînent des temps d'arrêt coûteux. L'outil Enterprise Dashboard a été conçu pour vous permettre de mieux comprendre et vous donner un aperçu complet de la sécurité. à partir d'une console légère exécutée via un navigateur. sécurité. les environnements dynamiques et répliqués doivent être consignés afin de refléter les relations maître/esclave existantes et vous permettre d'observer les problèmes de latence liés à l'évolutivité. Sun Microsystems Page 9 . Enterprise Dashboard Quelle que soit la taille de votre environnement MySQL et quel que soit le domaine (administration de base. À mesure que vous ajoutez des éléments à votre stratégie de déploiement horizontal. Le tableau de bord Enterprise Dashboard de MySQL Enterprise Monitor vous offre un avantage certain dans tous ces domaines.DBA virtuel » qui permet à vos DBA de maintenir vos serveurs MySQL aux niveaux de sécurité. MySQL Enterprise Monitor surveille de manière proactive vos systèmes MySQL et émet un avis d'expert sur la manière dont les personnes qui découvrent à peine MySQL peuvent renforcer la sécurité. identifier et régler un code SQL de piètre qualité. de la disponibilité et de la performance de tous vos serveurs MySQL à un seul emplacement. vous pouvez analyser des indicateurs propres à MySQL et au système d'exploitation pour des serveurs uniques ou des groupes d'applications complets et pouvez en un clin d'œil localiser la présence éventuelle ou avérée de problèmes de performance. chaque serveur doit faire l'objet d'une attention particulière. dans la figure 3 : Figure 3 : MySQL Enterprise Dashboard Copyright © 2010. suivi des performances et disponibilité). Il est illustré ci-dessous.

du plan visuel d’explication (commande EXPLAIN) et des graphiques relatifs à l’exécution des requêtes. Des statistiques cumulées en temps réel sur les contenus et les performances des requêtes sans devoir recourir aux journaux MySQL ou à la fonction SHOW PROCESSLIST. • Copyright © 2010. Des requêtes mal réglées peuvent elles aussi entraîner des problèmes de performance si vous les exécutez à l'excès. • Reportez-vous à la colonne dans laquelle est affiché le temps total d'exécution pour identifier les requêtes les plus coûteuses sur l'ensemble de vos serveurs. le Query Analyzer est conçu pour aider les développeurs et les DBA à localiser avec précision le code SQL qui provoque un ralentissement.Recherche et résolution de problèmes à l'aide du Query Analyzer Intégré à MySQL Enterprise Monitor. Cette valeur vous permet de savoir où vos systèmes investissent le plus de temps et de ressources et sur quoi vous devez concentrer vos efforts pour le réglage.1 et versions ultérieures). En effectuant un tri sur cette valeur. Sun Microsystems Page 10 . taille globale des données et date/heure où la requête à été vue pour la première fois : • La colonne affichant le nombre total d'exécutions vous permet de savoir si des requêtes sont trop souvent exécutées ou le sont par erreur. puis transmet les résultats au Gestionnaire de service (Service Manager) à des fins de surveillance et de présentation. Une vue consolidée de l’activité des requêtes sur l'ensemble des serveurs MySQL. Visualisation/analyse historique des requêtes sur tous les serveurs MySQL. de leur nombre d’exécutions. Il est alors possible d'identifier les requêtes qui ont été soumises mais qui sont susceptibles de ne jamais aboutir ou d'être interprétées comme n'étant pas défectueuses par d'autres options de surveillance des requêtes. le Query Analyzer vous épargne beaucoup de temps et d'efforts dans l'analyse des requêtes défectueuses de vos serveurs MySQL : • • • • • • Une solution intégrée de surveillance pour toutes les versions prises en charge de MySQL (4. lignes et octets) vous permet d'analyser si des requêtes retournent plus de données qu'en utilise votre application. ce qui évite le recours à une analyse utilisateur. le Query Analyzer fournit l’option d’utiliser soit la technologie MySQL Agent/Proxy ou les Connecteurs MySQL pour collecter le code SQL de l’application et les indicateurs de performance. Visualisation détaillée des requêtes. des statistiques d’exécution. Le Query Analyzer au secours du développeur et du DBA Grâce à un ensemble d'outils. Regroupements par catégories (avec possibilité de recherche) de toutes les requêtes sous forme canonique (sans variables) avec nombre total d'exécutions. Pour y parvenir. à diagnostiquer rapidement les défauts et à ramener l’application concernée à un niveau de performance optimal. temps total d'exécution. en examinant les requêtes sousjacentes et en comparant les lignes et les colonnes retournées avec les caractéristiques de votre application. vous faciliterez le réglage de vos applications et de vos schémas et obtiendrez ainsi de meilleures performances. • L'espace dans lequel est détaillée la taille globale des données (colonnes Rows et Bytes. • Nombre d'avertissements et d'erreurs SQL : le Query Analyzer est désormais pourvu d'une fonction qui lui permet de recueillir et de signaler le nombre de messages d'erreur et d'avertissement SQL pour chacune des requêtes. Consulter l'annexe A pour obtenir des informations détaillées concernant le déploiement des composants pour chacun des plug-ins ci-dessus. Corrélation de l’activité des requêtes et des graphiques systèmes Monitor. • La colonne de première occurrence (« First Seen ») vous permet d'observer en toute facilité à quel moment les requêtes affectées aux déploiements de nouvelles applications ont une incidence sur les performances de vos systèmes de production.

l’utilisateur ou le thread. Date et heure de l’exécution. Source et destination de l’hôte et du serveur MySQL. Copyright © 2010. Explication intégrée (via la commande EXPLAIN) des requêtes les moins efficaces permettant d’analyser leur chemin d’exécution. Sun Microsystems Page 11 . Temps d’exécution pour chaque exécution.Le Query Analyzer affiche un résumé de toutes les requêtes et statistiques d’exécution cumulées comme illustré ci-dessous : Les requêtes les moins performantes sont présentées de manière très détaillée afin de pouvoir identifier les combinaisons de variables qui provoquent une détérioration des performances. ID d’origine concernant la session. Ces détails comprennent les éléments suivants : • • • • • • Visualisation complète (substitution de variables) des instructions les moins efficaces.

et les serveurs MySQL qui les alimentent. • Il nécessite une charge pass-thru supplémentaire moindre pour vos environnements surveillés (400 microsecondes par paquet). le Query Analyzer assume les fonctions suivantes : • Il partage des composants communs courants avec d’autres solutions d’évolutivité et de performance MySQL Enterprise. • Identifier rapidement les requêtes qui affectent négativement le débit de vos environnements de production : • Par type de requête. Ce sont ces éléments qui permettent à des sociétés de toute taille de créer des applications en ligne économiques. MySQL Enterprise et son ensemble de services de support technique et de logiciels de surveillance et de base de données ont été conçus pour s'assurer que chacune de vos applications et leurs serveurs MySQL annexes soient maintenus aux niveaux de sécurité. Des mises à jour régulières de MySQL Enterprise Server aux outils de micro-analyse SQL. Outre les avantages liés au contrôle et au diagnostic du code mentionnés ci-dessus. • Une fois le code défectueux mis en évidence. de fiabilité et de simplicité d'utilisation. À mesure que ces applications. vous pouvez désormais réaliser les opérations qui suivent : • Optimiser votre code SQL pendant la phase de développement avant qu’il ne soit mis en production. par serveur ou utilisateur de l’application. Conclusion Deux raisons principales expliquent pourquoi MySQL est actuellement la base de données open source la plus populaire : son coût total de possession faible si on le compare à d'autres produits de base de données propriétaires et son avantage indéniable en termes de performance. les pannes et les temps de réponse lents s'avèrent plus coûteux. croissent en nombre et deviennent un élément vital de l'entreprise. hautement disponibles et capables d'évoluer au gré de la croissance de l'entreprise. Sun Microsystems Page 12 . par contenu. de performance et de disponibilité les meilleurs. • Il bénéficie d'une prise en charge complète auprès des services de support technique MySQL Enterprise. Copyright © 2010. vous pouvez : • visualiser un tableau EXPLAIN pour connaître le chemin d’accès et l’utilisation des index actuels dans le but d’optimiser le code défectueux pour de meilleures performances.Grâce au Query Analyzer de MySQL Enterprise Monitor.

html Solutions de haute disponibilité pour MySQL http://www.mysql.html Services de conseil professionnel MySQL http://mysql.mysql. visitez le site http://www. Un grand nombre de sociétés comptant parmi les plus importantes et les plus prospères. Nokia.fr/products/enterprise/high_availability.fr/consulting/ Copyright © 2010. ou en embarquant MySQL au sein de leurs solutions logicielles.Pour en savoir plus Le portefeuille de produits MySQL inclus les logiciels de bases de données open source les plus populaires au monde. Pour en savoir plus sur les abonnements et les services commerciaux MySQL proposés aux entreprises et découvrir comment Sun soutient activement la vaste communauté de développeurs open source MySQL. Query Analyser et support technique http://mysql.fr/products/enterprise/high_availability. Autres témoignages de clients et études de cas : http://www.com. YouTube et Zappos. Enterprise Monitor.fr/. Sun Microsystems Page 13 .mysql.fr/why-mysql/case-studies/ MySQL Enterprise. Alcatel-Lucent. leurs applications critiques d’entreprise. notamment des entreprises de pointe comme Yahoo!. Google. réduisent leurs coûts de manière significative en utilisant MySQL pour leurs sites Web.fr/products/enterprise/ Réplication et déploiement horizontal MySQL http://mysql.

et les rassemble. Se compose de services Java qui stockent.Annexe A – Déploiements de MySQL Enterprise Monitor et du Query Analyzer Cette section présente les options disponibles pour le déploiement de MySQL Enterprise Monitor et l'activation du Query Analyzer. surveillent et présentent des mesures de performance relatives à MySQL et au système d'exploitation sur l'interface utilisateur Web Enterprise Dashboard. Chaque exemple de déploiement est une combinaison des composants suivants qui sont nécessaires pour la collecte de données de performance relatives à MySQL. Agent MySQL – Déployé sur chaque serveur MySQL surveillé. Des plug-ins sont actuellement disponibles pour : o Plug-in MySQL Enterprise pour Connector/J (nécessite Connector/J v5. les surveille et les présente dans l'onglet Monitor du Query Analyzer. MySQL Proxy .2 ou version ultérieure) Surveillance des performances et des requêtes MySQL à l'aide de l'agent MySQL Copyright © 2010. Connecteurs MySQL – Utilisés par les applications natives pour se connecter aux bases de données MySQL. Les connecteurs suivants sont disponibles : o Connector/J – Permet de connecter les applications Java à MySQL o Connector/NET – Permet de connecter les applications Windows/. Sun Microsystems Page 14 . au système d’exploitation et aux requêtes : • • • • • Gestionnaire de service (Server Manager) de MySQL Enterprise – Serveur central pour les déploiements de MySQL Enterprise Monitor. l'agent collecte des données d'inventaire et de performance relatives à MySQL et au système d'exploitation.Plug-in déployé sur l'agent qui collecte des données relatives au contenu et aux performances des requêtes.1 ou version ultérieure) o Plug-in MySQL Enterprise pour Connector/NET (nécessite Connector/NET v6.NET à MySQL Plug-in MySQL Enterprise pour connecteurs – Utilisé par Enterprise Monitor pour collecter des données de performance relatives aux connecteurs MySQL. puis les transmet au Gestionnaire de service (Service Manager) à des fins de surveillance et de présentation.

sont transmises au Gestionnaire de service (Service Manager) via le port par défaut 18080 à des fins de stockage. • L'application est connectée au port part défaut 6446. le port par défaut. y compris d'autres statistiques se rapportant à MySQL et au système d'exploitation. • Les requêtes entrantes sont enregistrées par le proxy avant d'être acheminées vers la base de données back-end. et les statistiques relatives à l'exécution des requêtes. Sun Microsystems Page 15 . qui sert de proxy pour la base de données MySQL back-end exécutée sur le port 3306.Figure 1 – Query Analyzer avec l'outil MySQL Proxy Dans ce déploiement : • Le plug-in MySQL Proxy de l'agent MySQL a été déployé et configuré pour écouter les requêtes d'application sur le port 6446. de surveillance et d'analyse par le Query Analyzer et autres fonctionnalités Enterprise Monitor. Copyright © 2010. • Tous les jeux de résultats sortants sont renvoyés au client ou à l'application.

les instructions EXPLAIN et les statistiques cumulées au Gestionnaire de service (Service Manager) via le port 18080 par défaut.Surveillance des performances et des requêtes MySQL à l'aide de l'agent MySQL et du Connector/J Figure 2 – Query Analyzer avec Connector/J Dans ce déploiement : • • • • Le plug-in MySQL Enterprise pour Connector/J a été déployé au niveau du serveur d'applications et est configuré pour fonctionner avec Connector/J en vue de collecter des requêtes d'application et les données de performance connexes. à des fins de stockage. L'agent MySQL a été déployé sur le serveur MySQL surveillé et est connecté au port 3306 afin de rassembler des mesures de performance relatives à MySQL et au système d'exploitation. Tous les jeux de résultats sont renvoyés au client ou à l'application. L'agent MySQL transmet toutes les mesures de performance relatives à MySQL et au système d'exploitation au Gestionnaire de service (Service Manager) via le port 18080 par défaut. Sun Microsystems Page 16 . Copyright © 2010. Le plug-in pour Connector/J collecte et transmet toutes les statistiques sur le contenu et les performances des requêtes. les exemples. de surveillance et d'analyse par le Query Analyzer. à des fins de stockage et d'analyse par d'autres fonctionnalités Enterprise Monitor.

et a été configuré afin de rassembler des mesures de performance relatives à MySQL et au système d'exploitation. L'agent MySQL transmet toutes les mesures de performance relatives à MySQL et au système d'exploitation au Gestionnaire de service (Service Manager) via le port 18080 par défaut. les exemples.Surveillance des performances et des requêtes MySQL à l'aide de l'agent MySQL et du Connector/NET Figure 3 – Query Analyzer avec Connector/NET Dans ce déploiement : • • • • Le plug-in MySQL Enterprise pour Connector/NET a été déployé au niveau du serveur d'applications et est configuré pour fonctionner avec Connector/NET en vue de collecter des requêtes d'application et les données de performance connexes. les instructions EXPLAIN et les statistiques cumulées au Gestionnaire de service (Service Manager) via le port 18080 par défaut. Copyright © 2010. à des fins de stockage et d'analyse par d'autres fonctionnalités Enterprise Monitor. Tous les jeux de résultats sont renvoyés au client ou à l'application. de surveillance et d'analyse par le Query Analyzer. Sun Microsystems Page 17 . Le plug-in pour Connector/NET collecte et transmet toutes les statistiques sur le contenu et les performances des requêtes. L'agent MySQL a été déployé sur le serveur MySQL surveillé et exécuté sur le port 3306. à des fins de stockage.