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

Analyse d'un exemple de conception d'architecture MySQL

王林
Libérer: 2023-05-27 13:41:03
avant
1207 Les gens l'ont consulté

1. Architecture globale de MySQL

Comme vous pouvez le voir sur la photo, l'architecture MySQL est principalement divisée en Couche serveur et Couche moteur de stockage .

La couche serveur est divisée en connecteurs, caches, analyseurs, optimiseurs et exécuteurs. Toutes les fonctions du moteur de stockage croisé sont implémentées dans cette couche, telles que les fonctions, les procédures stockées, les déclencheurs, les vues, etc.

Le moteur de stockage est connectable. Les moteurs de stockage courants incluent MyISAM, InnoDB, Memory, etc. La valeur par défaut est MyISAM avant MySQL5.5, et la valeur par défaut après est InnoDB.

Analyse dun exemple de conception darchitecture MySQL

2. Connecteur

Le connecteur est principalement utilisé pour gérer les connexions clients et l'authentification des utilisateurs.

Le protocole TCP est utilisé pour la connexion entre le client et le serveur. La connexion est établie en effectuant une négociation TCP, et sur cette base, le connecteur démarre l'authentification.

> mysql -hlocalhost -P3306 -uroot -p
Copier après la connexion

Si l'authentification échoue, une erreur se produira ERREUR 1045 (28000) : Accès refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe : OUI).

Vous pouvez afficher les informations de toutes les connexions du système via la commande show processlist :

Analyse dun exemple de conception darchitecture MySQL

# 🎜🎜#Commond La colonne représente l'état de la connexion, Daemon représente le processus en arrière-plan, Query représente la requête et Sleep représente la connexion inactive.

3. Cache de requêtes

La requête demandée par le client n'accédera pas directement au moteur de stockage, mais vérifiera d'abord si le résultat existe dans le cache. Si le résultat a été mis en cache, renvoyez-le directement ; sinon, réexécutez le processus de requête et mettez le résultat en cache une fois la requête terminée.

Le cache d'invalidation sera vidé lorsque la table de données change, comme les opérations d'insertion, de mise à jour, de suppression et de modification.

Pour les tables de données qui changent fréquemment, le taux de réussite du cache est très faible. Étant donné que l'utilisation du cache réduirait les performances de lecture et d'écriture, le module de cache a été supprimé dans les versions postérieures à MySQL 8.0.

Vous pouvez vérifier si le cache est activé en utilisant la commande suivante :

Analyse dun exemple de conception darchitecture MySQL

4. Analyseur

L'analyseur effectue principalement des

analyses lexicales et des analyses grammaticales sur les instructions SQL.

Pour les mots-clés MySQL et la signification de chaque mot, une analyse lexicale est requise. Effectuez ensuite une analyse syntaxique pour détecter si l'instruction SQL répond aux exigences de syntaxe MySQL.

MySQL identifie les noms de colonnes, les noms de tables, où, select/update/insert et d'autres mots-clés MySQL dans la chaîne, et détermine si le SQL satisfait la grammaire selon les règles de grammaire, et génère enfin un résumé arbre syntaxique ( AST).

Par exemple : Si vous écrivez le mot-clé lesswhere dans l'instruction SQL, une erreur s'affichera.

mysql> select * from user id=1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=1' at line 1
Copier après la connexion
5. Optimiseur

Avant que l'instruction SQL ne soit réellement exécutée, elle doit être traitée par l'optimiseur.

Le plan d'exécution (Expliquer) que nous connaissons bien est généré par l'optimiseur.

L'optimiseur a principalement deux fonctions :

optimisation logique et optimisation physique.

L'optimisation logique effectue principalement la réécriture de prédicats équivalents, la simplification conditionnelle, l'élimination de sous-requêtes, l'élimination de connexions, l'optimisation sémantique, la fusion de groupes, le refoulement de sélection, la requête d'optimisation d'index, la requête de vue de remplacement de requête de table, le remplacement ou l'opération d'union, etc. .

Grâce à l'algorithme glouton et au modèle d'estimation des coûts, l'objectif principal de l'optimisation physique est d'estimer le coût de chaque méthode d'exécution. Et utilisez des index pour optimiser les connexions de tables et enfin générer des plans d'exécution de requêtes.

Ci-joint le schéma d'architecture de l'optimiseur MySQL, vous pouvez clairement voir le processus d'optimisation :

Analyse dun exemple de conception darchitecture MySQL#🎜 🎜#6. Exécuteur

Une fois que l'optimiseur a optimisé le SQL et généré le plan d'exécution, il transmettra le plan d'exécution à l'exécuteur.

L'exécuteur appelle l'interface du moteur de stockage pour exécuter réellement la requête SQL. L'exécution de l'instruction SQL se termine après l'obtention des résultats de la requête renvoyés par le moteur de stockage et leur renvoi au client.

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:yisu.com
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