Maison  >  Article  >  base de données  >  Comment une instruction de requête SQL est-elle exécutée ?

Comment une instruction de requête SQL est-elle exécutée ?

coldplay.xixi
coldplay.xixiavant
2020-07-01 17:54:402095parcourir

Comment une instruction de requête SQL est-elle exécutée ?

Comment une instruction de requête SQL est-elle exécutée ?

Quelles parties contient MySQL ?

  1. Connecteur : connexion de gestion, vérification des autorisations.
  2. Analyseur : analyse lexicale, analyse syntaxique.
  3. Optimiseur : génération de plan d'exécution, sélection d'index.
  4. Exécuteur : exploite le moteur de stockage et renvoie les résultats.
  5. Moteur de stockage : stocke les données et fournit des interfaces de lecture et d'écriture.

Recommandations d'apprentissage associées : Tutoriel vidéo MySQL

Connecteur

Dans un premier temps, nous allons d'abord nous connecter à la base de données MySQL, et cette fois nous connecterons le connecteur. Le connecteur est chargé d'établir une connexion avec le client, d'obtenir les autorisations, de maintenir et de gérer la connexion.

mysql -h $ip -u root -p

Cache de requêtes

Après avoir établi la connexion, nous pouvons utiliser l'instruction SELECT, et la logique d'exécution passera à la deuxième étape : le cache de requêtes. MySQL va maintenant interroger le cache pour voir si cette instruction a déjà été exécutée et, si c'est le cas, la renvoyer directement. Ce module a été supprimé depuis MySQL 8.0.

Analyzer

S'il n'y a pas de cache de requêtes, à partir de là, MySQL commencera à analyser ce que nous voulons faire, et il doit analyser les instructions SQL que nous écrivons. L'analyseur effectuera d'abord une analyse lexicale pour identifier la chaîne et ce qu'elle représente. Effectuez ensuite une analyse syntaxique pour déterminer s'il y a des erreurs dans les instructions SQL que nous avons écrites. S'il y a des erreurs, une erreur sera générée.

Optimiseur

Après avoir passé l'analyseur, MySQL sait ce que vous voulez faire. À ce moment, l'optimiseur décidera quelle solution utiliser en fonction de la structure de la table et. objectif de la déclaration.

Exécuteur

MySQL sait ce que nous voulons faire grâce à l'analyseur et sait comment le faire le plus efficacement possible grâce à l'optimiseur. Ensuite, vous pouvez entrer dans l'exécuteur et exécuter réellement l'instruction SQL.

select * from users where name = ‘operator'

En supposant qu'il n'y a pas d'index sur le champ nom dans la table des utilisateurs, alors l'exécuteur appelle l'interface du moteur InnoDB pour obtenir la première ligne et détermine si le nom est égal à l'opérateur. Sinon, ignorez-le. Si c'est le cas, mettez-le dans le résultat concentré. Appelez ensuite l'interface du moteur pour récupérer la ligne suivante et répétez le même jugement logique jusqu'à ce que la dernière ligne du tableau soit récupérée. Enfin, le jeu de résultats est renvoyé 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer