Maison > base de données > tutoriel mysql > le corps du texte

Analyse sur le principe de la sous-base de données et de la table mycat

藏色散人
Libérer: 2019-06-15 14:49:46
original
9333 Les gens l'ont consulté

Analyse sur le principe de la sous-base de données et de la table mycat

MyCat est un système de base de données distribuée open source et un serveur qui implémente le protocole MySQL. Les utilisateurs front-end peuvent le considérer comme un outil client MySQL. et l'accès en ligne de commande, et son backend peut utiliser le protocole natif MySQL pour communiquer avec plusieurs serveurs MySQL, et peut également utiliser le protocole JDBC pour communiquer avec la plupart des serveurs de bases de données grand public. Sa fonction principale est de diviser les tables et les bases de données, ce qui sera un. grande La table est divisée horizontalement en N petites tables et stockée sur le serveur MySQL back-end ou dans d'autres bases de données.

Mycat peut réaliser la séparation de la lecture et de l'écriture dans les tables et les bases de données

La réplication maître-esclave est fournie avec MySQL~

À propos de l'algorithme de partitionnement modulo : Modulo basé sur l'identifiant Basé sur le nombre de clusters de base de données (ou le nombre de tables, une table dans mycat correspond à une bibliothèque)

Utiliser la table MyCat et l'analyse du principe de la base de données

Les résultats du routage dans Mycat sont déterminés par le champ de partition et la méthode de partition. S'il y a un champ d'identification dans la condition de requête, la requête tombera sur une partition spécifique. Si vous interrogez un champ sans fragmentation, toutes les bases de données seront interrogées et les résultats seront encapsulés et envoyés au client.

Modifiez le niveau de journalisation /mycat/conf/log4j2.xml pour déboguer

Par exemple :

Dans la requête

select * from user_info
Copier après la connexion

Envoyer trois requêtes A db

Si la requête est conditionnelle (sans conditions)

est convertie en :

select * from db1.user_info
select * from db2.user_info
select * from db3.user_info
Copier après la connexion

Enfin, l'ensemble de résultats est encapsulé par mycat et renvoyé au client Fin

Si vous ajoutezwhere id = 1, dans de telles conditions, mycat convertira 1%3=1 sur db2 ! Convertissez en select * à partir de db2.user_info où id = 1. Si la requête est partitionnée, elle est très efficace. Envoyez-en simplement un et ce sera fait

S'il ne s'agit pas d'un champ de fragment, trois seront envoyés ! L'efficacité est très faible

Par exemple, où name = 'jack' enverra trois requêtes à chaque base de données selon les conditions pour renvoyer les résultats

tailf -200f mycat.log : effectuez une visualisation

en temps réel et interrogez rapidement en un coup d'œil

Faites attention à la requête de pagination :

select * from user_info limit 0,2
Copier après la connexion

jusqu'à la fin De quel fragment de données s'agit-il ?

Envoyez trois requêtes de sélection à trois bibliothèques pour obtenir trois paires de six résultats

Sélectionnez au hasard une paire et retournez-la au client

Si ajouté Quid des conditions de tri ?

 select * from user_info order by id  limit 0,2   (相当于取出最大的两条数据)
Copier après la connexion

Envoyez d'abord trois sélections, chacune étant les deux plus grandes, puis renvoyez-les à mycat pour une sélection complète et renvoyez les deux plus grandes au client

Si c'est

 select * from user_info   limit 0,3
Copier après la connexion

Ce qui est renvoyé à chaque fois que la requête est modifiée est aléatoire !

db1 prend deux aléatoires de db2 et db3

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!