Comment optimiser une base MySQL
Architecture
Open source
MySQL
Optimisation
Tuning
Application Web
Serveur Web
Partitionnement
Cluster
SGBD
Trucs et astuces pour tirer le meilleur parti de MySQL en l'entreprise : Quand il s'agit d'applications d'entreprise, il n'est pas question de faire augmenter les volumes de données. Depuis l'analyse en passant par de simples transactions, les bases de données sont poussés à supporter plus d'enregistrements, générer de plus en plus de rapports, avec des temps de réponse de plus en plus rapides. Ou comment faire un tuning efficace de ses bases MySQL.
Pour les entreprises s'intéressant aux solutions open source ou les utilisant, MySQL est une base de données familiaire, mais les questions que se posent les services informatiques sont les suivantes : Est ce que MySQL est dimensionnée pour notre entreprise ? Peut-il être adapter pour gérer notre charge de travail ?
La réponse simple est que MySQL est adaptable si vous prenez en compte l'architecture entière et pas seulement la base de données. De très grosses sociétés de médias ou organisations utilisent des technologies open source pour la gestion de leur contenu Internet.
Construire une architecture de base de données orientée vers la performance
Pour comprendre la façon de configurer MySQL et comment améliorer ses performances, il n'est pas simplement question de peaufinage du SGBD mais une compréhension des applications qui l'utilisent et la façon de réduire leur dépendance globale des accès en écriture à la base.
Chaque couche de l'architecture doit être employée à réduire l'impact sur MySQL et optimiser sa capacité. La première étape est l'optimisation du code ainsi que les stratégies de mise en cache du code et des niveaux du serveur Web. Une fois le code optimisé et la mémoire cache entièrement utilisée, pour soutenir une forte une forte charge sur un site Web, il est nécessaire d' utiliser un puissant serveur Web et une architecture de base de données adaptée.
Il existe de nombreuses options pour concevoir l'architecture d'une base de données, y compris le partitionnement vertical et/ou horizontal, la fragmentation et l'utilisation de proxy.
Table-locking
Il existe également des options de verrouillage des tables pendant l'écriture. Le table-locking (verrouillage) consiste à bloquer l'accès à une table, une page ou une ligne en fonction du type de table, pour toutes les requêtes, le temps que la requête en cours de traitement soit prise en compte.
Les clusters
Il est recommandé en premier lieu de mettre en oeuvre la réplication de base de données via le mode maître-esclave de MySQL, du fait que les autres alternatives ajoutent une certaine complexité et posent certains problèmes. Cette approche permet d'augmenter les capacités de la base en ajoutant simplement des esclaves au cluster Maître-Esclave de MySQL.
Optimiser le code
La clé pour tirer parti de cette architecture est au niveau du code, où toutes les opérations d'écriture sont envoyées à la base de données maître tandis que toutes les opérations de lecture sont envoyées aux bases de données esclave permettant de dimensionner la base en fonction des demandes d'accès en lecture.
Une mise en garde à propose de cette approche est que la nature asynchrone du processus maître-esclave de mise à jour, nécessaire pour des raisons de performance, peut retarder les mises à jour pendant que les écritures sont envoyées aux membres esclaves. Cela peut aussi être gérer par du code adapté au niveau de la couche application.
Certaines des plus grandes entreprises ou marques n'utilisent que MySQL, comme Yahoo, France telecom, YouTube, Siemens, Alcatel Lucent, Virgin Mobile, Ericsson, AOL, Facebook, MySpace, Twitter, WordPress. Si ces compagnies peuvent traiter une partie de leur activité sur MySQL vous aussi.
