Maison > Article > base de données > Explication détaillée des principes de base de la séparation en lecture et en écriture MySQL
Cet article vous apporte des connaissances pertinentes sur mysql, qui organise principalement les problèmes liés aux principes de base de la séparation lecture-écriture, y compris le principe de fonctionnement de la séparation lecture-écriture, les méthodes de mise en œuvre de la séparation lecture-écriture et les middlewares couramment utilisés pour séparation lecture-écriture Jetons un coup d'œil au contenu ci-dessous, j'espère qu'il sera utile à tout le monde.
Apprentissage recommandé : Tutoriel vidéo MySQL
Dans certains scénarios d'entreprise de grands sites Web, la quantité de concurrence fournie par un seul serveur de base de données ne peut plus répondre aux besoins de l'entreprise. Afin de répondre Dans ce cas, d'une manière générale, les données sont synchronisées via la synchronisation maître-esclave. Sur cette base, la concurrence et la capacité de chargement de la base de données sont améliorées grâce à la séparation lecture-écriture.
De manière générale, les opérations de requête sur la base de données dans les scénarios commerciaux sont bien plus importantes que l'ajout, la suppression et la modification, et les opérations de lecture ont moins d'impact sur la base de données. Par conséquent, nous configurons généralement un serveur de base de données en tant que serveur maître, qui est principalement responsable des tâches d'ajout, de suppression et de modification des données, et configurons 3 à 4 serveurs de base de données en tant que serveurs esclaves, qui sont principalement responsables des tâches de requête de données. Le serveur esclave de base de données synchronise les données du serveur maître de base de données pour assurer la cohérence des données.
Selon le niveau de séparation lecture-écriture, la séparation lecture-écriture est généralement mise en œuvre de deux manières, via la couche application et via la couche middleware.
L'implémentation via la couche application fait référence à l'implémentation du langage de requête de données et du langage d'exploitation des données à l'intérieur de la page Web pour pointer respectivement vers différentes bibliothèques principales et bibliothèques esclaves MySQL. Le schéma de séparation lecture-écriture MySQL implémenté via la couche application est le suivant :
L'avantage est que cela réduit la difficulté de déploiement, le déploiement et l'installation sont prêts à l'emploi, et les performances sont meilleures. que lorsque l'architecture est étendue, le code doit être modifié, ce qui est difficile à mettre en œuvre. Les opérations avancées telles que le partage automatique de bases de données et le partage de tables ne sont pas très adaptées à certains scénarios d'application à grande échelle.
L'implémentation via la couche middleware fait référence au pointage uniforme de toutes les instructions SQL vers un périphérique middleware au niveau de la couche application, et le périphérique middleware pointe différentes instructions SQL vers différents serveurs de base de données pour les opérations. Le schéma de réalisation de la séparation lecture-écriture via la couche middleware est le suivant :
L'avantage est que la conception de l'architecture est plus flexible, a moins d'impact sur le code métier, a une bonne portabilité et peut cependant permettre un contrôle avancé. , cette architecture nécessite un fonctionnement professionnel. Le personnel de maintenance entretient l'architecture.
Les programmes middleware couramment utilisés pour la séparation en lecture et en écriture sont les suivants :
1. cobar
Le système relationnel distribué développé par Alibaba B2B est un des premiers middlewares. le maintenir parce que le développeur est parti.
2. MyCAT
Les passionnés de technologie ont effectué un développement secondaire sur la base de cobar, résolu certains problèmes de cobar et ajouté de nouvelles fonctionnalités. Actuellement, la communauté MyCAT est très active et de nombreuses entreprises utilisent MyCAT.
3. OneProxy
Oneproxy est un middleware commercial payant développé par l'équipe Alipay et est très stable dans les scénarios de concurrence élevée.
4. Vitess
Ce middleware a une architecture complexe, et l'utilisation de Vitess nécessite l'utilisation de l'interface API qu'il fournit.
5. Kingshard
est développé par l'équipe 360 et prend en charge les sous-bases de données et les tables, mais sa stabilité est moyenne dans des conditions de concurrence élevée.
6, MaxScale et MySQL Route
Tous deux sont des middleware MySQL officiels. Maxscale a été développé par Mariadb et MySQL Route est le middleware actuellement publié par Oracle pour la base de données MySQL.
Apprentissage recommandé : Tutoriel vidéo MySQL
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!