Maison  >  Article  >  base de données  >  Comprendre l'architecture MySQL

Comprendre l'architecture MySQL

coldplay.xixi
coldplay.xixiavant
2021-01-05 09:20:432088parcourir

tutoriel vidéo MySQLla colonne présente l'architecture MySQL

Comprendre l'architecture MySQL

Recommandé (gratuit) : Tutoriel vidéo MySQL

Architecture MySQL

L'architecture MySQL est principalement divisée en deux parties : Client et serveur

Comprendre larchitecture MySQL

Client

Le connecteur client est principalement responsable de la connexion de certains clients, ciblant différents langages de programmation Le driver assure la connexion services.

Côté serveur

La couche de service comprend : les outils de gestion et de contrôle du système, le pool de connexions, l'interface SQL, l'analyseur, l'optimiseur de requêtes, le cache. Le

  • Pool de connexions
    est chargé de gérer la connexion entre le client et le traitement des données de la couche de service et de vérifier l'autorisation de l'utilisateur pour effectuer des opérations.

  • Outils de gestion et de contrôle du système
    Responsable de la sécurité des sauvegardes, de la gestion de la sécurité, des services et outils de gestion de cluster, etc.

  • Interface SQL
    reçoit les commandes SQL du client et renvoie les résultats requis par l'utilisateur. Tels que : dml, ddl, procédures stockées, vues, déclencheurs et autres commandes.

  • Parser
    Analyse de mots (mots-clés), analyse de syntaxe, réception de SQL, analysez-le, génération d'un arbre d'analyse et vérification de la syntaxe.

  • Optimiseur de requête : après avoir généré l'arbre d'analyse et transmis la grammaire de l'analyseur, l'optimiseur sélectionne un index approprié, puis génère un plan d'exécution, puis interagit avec le moteur d'exécution.

  • Mise en cache
    Le mécanisme de mise en cache est composé d'une série de caches.
    Tels que : le cache de table, le cache d'enregistrement (les résultats de la requête SQL sont mis en cache et la même requête SQL sera renvoyée du cache la prochaine fois),
    le cache d'autorisations, le cache du moteur, etc. Si le cache atteint, les données seront récupérées directement du cache.

  • La couche moteur de stockage
    est responsable de la lecture et de l'accès aux données Mysql, telles que InnoDB, MyISAM, etc. Enfichable, différents moteurs de stockage peuvent être remplacés.

  • Couche de fichiers système
    tels que les journaux, les fichiers de données, etc.

Un processus d'exécution SQL

Comprendre larchitecture MySQL

  • D'abord, le client se connecte
  • Deuxièmement, vérifiez les autorisations des utilisateurs et d'autres opérations dans le gestionnaire de connexions de la couche serveur
  • Ensuite, s'il s'agit d'une version non-8.0, il vérifiera le cache SQL actuel dans le pool de cache et reviendra directement si il y en a ;
  • S'il n'est pas dans le cache, un arbre d'analyse sera généré par la syntaxe et la sémantique de l'analyseur
  • L'optimiseur analyse et génère un plan d'exécution, et sélectionne le plan approprié ; index;
  • Le moteur de stockage appelle l'interface API pour interroger les données, met à jour le cache avec les données interrogées
  • les renvoie enfin

Couche du moteur de stockage

Le moteur de stockage est Le sous-système de MySQL qui traite spécifiquement les fichiers est un système abstrait basé sur le système de fichiers pour traiter les fichiers MySQL et disque
Couramment utilisé ; moteurs de stockage, MyISAM et InnoDB qui prennent en charge les transactions ;

  • Avant la version MySQL 5.6, le moteur de stockage par défaut est MyISAM
  • Après la version 5.6, le moteur de stockage par défaut est InnoDB ; 🎜>
Comparaison des fonctions

Comprendre larchitecture MySQL

  • InnoDB prend en charge 4 fonctionnalités de transaction d'ACID, mais MyISAM ne les prend pas en charge

  • InnoDB prend en charge 4 niveaux d'isolation des transactions, la valeur par défaut est répétable Lecture répétable, MyISAM ne le prend pas en charge
  • InnoDB prend en charge la récupération sécurisée en cas de crash, mais MyISAM le fait ; ne le prend pas en charge ;
  • InnoDB prend en charge les clés étrangères, mais MyISAM ne le prend pas en charge
  • InnoDB prend en charge la granularité du verrouillage au niveau des lignes, MyISAM ne le prend pas en charge ; le prend en charge et ne prend en charge que la granularité du verrouillage au niveau de la table
  • InnoDB prend en charge MVCC, MyISAM n'est pas pris en charge
  • ;

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer