Maison  >  Article  >  développement back-end  >  Comment utiliser la réplication maître-esclave pour améliorer les performances de lecture de MySQL

Comment utiliser la réplication maître-esclave pour améliorer les performances de lecture de MySQL

王林
王林original
2023-05-11 12:40:441510parcourir

MySQL est un système de gestion de base de données relationnelle open source très populaire Avec le développement croissant du commerce Internet, les exigences en matière de performances de lecture et d'écriture de la base de données MySQL sont de plus en plus élevées. Parmi eux, les performances de lecture sont l’un des indicateurs les plus critiques de la base de données MySQL. Ici, nous allons présenter comment utiliser la fonction de réplication maître-esclave de la base de données MySQL pour améliorer les performances de lecture.

1. Qu'est-ce que la réplication maître-esclave

La réplication maître-esclave est une solution de haute disponibilité et d'évolutivité pour la base de données MySQL. Il utilise un serveur de base de données comme base de données principale (également appelé nœud maître) et plusieurs serveurs de base de données comme bases de données esclaves (également appelés nœuds esclaves). La base de données maître synchronise ses propres modifications de données (insertion, mise à jour, suppression, etc.). Aux bases de données esclaves pour réaliser une sauvegarde à chaud des données, une séparation en lecture-écriture et d'autres fonctions.

2. Le principe de la réplication maître-esclave

Dans le système de réplication maître-esclave, les opérations d'écriture de données ne peuvent être effectuées que sur la bibliothèque maître, et la bibliothèque esclave est uniquement responsable des opérations de lecture. La bibliothèque principale enregistrera ses propres opérations de modification dans le Binlog (journal binaire), tandis que la bibliothèque esclave analysera le Binlog de la bibliothèque principale et modifiera les données sur sa propre base de données, réalisant ainsi la synchronisation des données de l'ensemble du cluster.

3. Avantages de la réplication maître-esclave

(1) Sauvegarde et récupération des données : les données de la base de données maître peuvent être synchronisées avec la base de données esclave en temps réel, et les données de la base de données principale seront perdues et pourront être rapidement restaurées.

(2) Séparation de lecture et d'écriture : l'utilisation de la réplication maître-esclave peut séparer les opérations de lecture et d'écriture, réduire la pression sur la bibliothèque principale et améliorer les performances globales du système.

(3) Haute disponibilité : La réplication maître-esclave permet à la base de données esclave de prendre le relais de la base de données maître et de continuer à fournir des services en cas de panne de la base de données maître, assurant ainsi la haute disponibilité de l'ensemble du système.

4. Implémenter la réplication maître-esclave

(1) Configurer la bibliothèque principale

Afin d'activer la fonction Binlog de la bibliothèque principale, vous devez configurer la bibliothèque principale. Ajoutez la configuration suivante au fichier my.cnf :

[mysqld]
log-bin=mysql-bin
server-id=1# 🎜🎜#

log ici L'élément de configuration -bin spécifie le nom de fichier du journal Binlog et l'élément de configuration server-id indique l'identifiant unique du serveur actuel.

(2) Configurez la bibliothèque esclave

Pour que la bibliothèque esclave établisse une connexion avec la bibliothèque principale et obtienne les données Binlog, vous devez ajouter ce qui suit au fichier de configuration my.cnf de la bibliothèque esclave Configuration :

[mysqld]

server-id=2

L'id du serveur de la bibliothèque esclave est configuré ici . Il convient de noter que l'identifiant du serveur doit être le seul.

Ensuite, exécutez la commande suivante dans la bibliothèque esclave pour connecter la bibliothèque esclave à la bibliothèque principale et obtenir les données Binlog :

CHANGE MASTER TO MASTER_HOST='Adresse IP de la bibliothèque principale ', MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_LOG_FILE='log-bin value set by the main library', MASTER_LOG_POS=4;

Dans la commande ci-dessus, le paramètre MASTER_HOST spécifie le Adresse IP de la bibliothèque principale, les paramètres MASTER_USER et MASTER_PASSWORD spécifient le nom d'utilisateur et le mot de passe pour se connecter à la bibliothèque principale, MASTER_LOG_FILE spécifie le nom de fichier du journal Binlog dans la bibliothèque principale et MASTER_LOG_POS spécifie l'emplacement où les données sont copiées depuis le bibliothèque d'esclaves.

Après avoir exécuté la commande, vous pouvez utiliser la commande SHOW SLAVE STATUS pour afficher l'état de réplication maître-esclave de la bibliothèque esclave.

(3) Testez la séparation lecture-écriture

Exécutez l'instruction SELECT sur la base de données esclave Vous pouvez voir que les résultats de la requête sont les mêmes que ceux de la base de données principale. À ce stade, la base de données esclave a terminé le processus de synchronisation des données. Ensuite, exécutez INSERT, UPDATE, DELETE et d'autres instructions de modification de données sur la base de données principale, et la base de données esclave synchronisera automatiquement les modifications de données dans la base de données principale pour compléter la séparation de la lecture et de l'écriture.

5. Notes

(1) Lorsque la configuration matérielle de la base de données principale et de la base de données esclave est différente ou que le volume de données est très différent, des problèmes tels que la synchronisation des tables et la réplication doit être envisagée pour garantir la cohérence des données.

(2) Il est recommandé d'utiliser une connexion réseau haut débit entre la base de données maître et la base de données esclave pour garantir la vitesse de transmission des données.

(3) La configuration de la bibliothèque esclave ne peut pas être inférieure à celle de la bibliothèque maître, sinon des délais ou des erreurs plus élevés peuvent survenir.

(4) Si la base de données maître échoue, vous devez basculer la base de données esclave vers la base de données maître et reconfigurer la base de données maître d'origine en tant que nouvelle base de données esclave.

6. Résumé

La réplication maître-esclave de base de données MySQL est une très bonne solution pour améliorer les performances de lecture. En utilisant la réplication maître-esclave, plusieurs fonctions telles que la sauvegarde à chaud des données, la séparation lecture-écriture et la haute disponibilité peuvent être obtenues en même temps, la pression de lecture-écriture sur la base de données principale peut être réduite et les performances du système. peut être amélioré. Cependant, lors de la mise en œuvre de la réplication maître-esclave, vous devez prêter attention aux problèmes de synchronisation et de réplication des données afin de garantir la cohérence des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn