MySQL Real Game 45 talk Learning notes (1)

Ordinaryblog 2022-01-15 02:50:35 阅读数:69

mysql real game talk learning

MySQL Infrastructure

MySQLPeut être divisé enserverLa couche et le moteur de stockage sont deux parties
serverY compris: Connecteur(Gérer les connexions,Vérification des droits)、Cache de requête(Hit renvoie directement le résultat)、Analyseur(Analyse lexicale,Analyse grammaticale)、Optimizer(Exécuter la génération du plan,Sélection de l'index)、Actionneur(Moteur de fonctionnement,Retour aux résultats)
Moteur de stockage(Stockage des données,Fournir une interface lecture - écriture)

Qu'est - ce qu'un long lien?

Un lien long est une connexion réussie,Si le client continue à demander,Toujours utiliser la même connexion.

Qu'est - ce qu'une connexion courte?

Une connexion courte est une déconnexion qui se produit peu de fois après l'exécution d'une requête,Recréer une autre requête la prochaine fois

Comment choisir?

Le processus d'établissement d'une connexion est souvent complexe,Alors essayez d'utiliser de longues connexions
Mais,Une connexion longue peut entraîner une consommation de mémoire trop importante pour être tuée par le système.Parce queMySQLLa mémoire utilisée temporairement pendant l'exécution est gérée à l'intérieur de l'objet de connexion,Ces ressources ne sont libérées que lorsque la connexion est déconnectée.

Solutions

  • Déconnecter périodiquement les longs liens
  • InMySQL5.7Après,Peut passermysql_reset_connection Pour réinitialiser les ressources de connexion.Ce processusPas besoin de reconnecter et de refaire la validation des permissions,Mais la connexion est restaurée à l'état où elle venait d'être créée.

Attention!:

Essayez de ne pas utiliser le cache de requête .
Parce que,Le cache de requête échoue très souvent,Chaque fois qu'il y a une mise à jour d'un tableau, Tous les cache de requête de cette table seront effacés .
Vous pouvezquery_cache_type Set to DEMAND,Par défaut SQL Aucune instruction n'utilise le cache de requête, Pour les déclarations qui déterminent l'utilisation du cache de requête ,Disponible enSQL_CACHEDésignation

mysql> select SQL_CACHE * from T where ID=10;

(InMySQL8.0Après La fonction de cache de requête a été supprimée )

Exécution d'une instruction de requête:

( Avant l'exécution de l'instruction de requête ) Connexion par connecteur

 mysql -h$ip -P$port -u$user -p

MySQLSur demande,D'abord.Cache de requêteRecherche moyenne(k-v), Renvoie le résultat directement s'il existe ;
Si le cache de requête n'est pas touché,Analyseur D'abord. “Analyse lexicale”.C'est - à - dire::Oui.“SELECT”Identifiez - le.,Mettez la chaîne“T” Identifié comme nom de table T…
Terminé.“Analyse lexicale”Après,On y va.“Analyse grammaticale”,Juge ça.SQLSi l'énoncé est satisfaitMySQLSyntaxe
Après çaOptimizerTraitement: Si le tableau a plus d'un index, décidez quel index utiliser ; Ou quand il y a plusieurs tables associées ,Déterminer l'ordre de connexion des tableaux individuels
Et puisActionneur:Au début de l'exécution,Il faut d'abord juger votre opinion sur ce tableau T Avez - vous la permission d'exécuter la requête,Si ce n'est pas le cas,Renvoie une erreur sans permission.Si vous avez la permission,Lors de l'ouverture de la table,L'actionneur est défini par le moteur du tableau, En utilisant l'interface qu'il fournit .

版权声明:本文为[Ordinaryblog]所创,转载请带上原文链接,感谢。 https://javamana.com/2022/01/202201080600349716.html