Skip to main content

MySQL est divisé en une couche de serveur et une couche d'outil de stockage sur l'architecture globale. Dans lequel la couche de serveur, y compris le connecteur, le cache, l'analyseur, l'optimiseur, l'actionneur, etc les procédures stockées sont stockées, activées, mode et fonctions intégrées déployées dans cette classe. La classe des moteurs de données est responsable de la conservation et de l'extraction de données, telles que InnoDB, Myisam, Mémoire et autres moteurs. Une fois que le client est connecté à la couche de serveur, le serveur appelle l'interface fournie par l'outil Data pour effectuer des modifications de données.


Premièrement, Connecteur

Responsable d'établir une connexion avec le client, obtenez des droits d'utilisateur et de maintenir et gérer les connexions.

L'état de la connexion est interrogé par le processeur d'affichage; Lorsque l'utilisateur établit une connexion, même si l'administrateur change d'accès aux droits de l'utilisateur, cela n'affectera pas l'utilisateur connecté.

Match nPar défaut, 8 heures et seront déconnectés après une longue période.

En disant simplement que la connexion avec une longueur inférieure:


Avantages: Au cours du temps de connexion, le client utilise toujours la même connexion pour éviter plusieurs Connexions de consommation de ressources.

Inconvénients: Lorsqu'il est exécuté dans MySQL, la mémoire gérée par la mémoire est gérée, car elle n'est pas publiée pendant une longue période, cela entraînera une déversement de la mémoire système et une demande de tuer le système. Vous devez donc éliminer de longues connexions ou après avoir exécuté de grandes requêtes, déconnecte. Après MySQL 5.7, la ressource de connexion peut être initialisée via mysql_rest_conniction et aucun besoin d'effectuer des autorisations.


Lorsque la requête est acceptée, la requête est actuellement interrogée (verrouillage / verrou de stockage), qu'il s'agisse de savoir si ou non. Non, prenez le processus de mise en œuvre normal. Mais en réalité,

Tampon de requêteHabituellement aucune installation requise.

Parce que le tampon est nettoyé car la table liée à la requête est mise à jour. Par conséquent,

convient aux tables statiques.
Après MySQL8.0, le tampon de requête a été aboli.

Mardi, analyseur


Si je définis la sélection, la table de noms, le nom de la colonne, déterminez s'il existe ou non.

2, analyse gramatique

Le ministère de la réflexion Si la déclaration est conforme à la méthode YSQL.

4, Optimizer

Déterminez l'utilisation de l'index, l'ordre de connexion de la table de jonction, V.v sélectionnez le diagramme optimisé.

V. Actionneur

Avant l'instruction exécutable spécifique, la permission droite et l'interface utilisée après l'interface fournie par l'outil de données. Si une requête lente est définie, vous verrez des lignes_examinées dans le journal correspondant pour indiquer le nombre de scanners. Dans certaines scènes (index), les appels de transmission une fois, mais de nombreuses lignes sont numérisées dans l'outil de données, en raison deCe nombre de lignes et de rover_examiné dans le moteur

n'est pas identique.

Raison de ne pas vérifier en premier: Si l'activation ou similaire, il est nécessaire d'identifier les droits dans le lecteur et ne peut pas être vérifié dans la phase d'optimisation.



Comme mentionné précédemment, MySQL est divisé en couches de serveur et couches de moteurs de données et chaque classe correspond également. Notre fichier journal. Si vous sélectionnez un outil InnoDB, correspondant au fichier journal. La couche de serveur correspond au fichier binlog. Pour pourquoi il y a deux systèmes de journal, regardez vers le bas.

1, Refaire Log


Redo Log est un journal unique InnoDB, pourquoi devrais-je refaire le journal? Imaginez une telle scène, MySQL est de s'assurer que la persévérance est que vous devez écrire des données dans des fichiers de disque. Nous savons, lors de l'écriture sur le disque, IO du fichier sera soumis et si chaque mise à jour est utilisée, l'efficacité globale sera particulièrement faible et elle n'est pas disponible.

Parce que le disque n'est pas enregistré directement, la solution est
pour la première fois en mémoire et peut la mettre à jour sur le disque lorsque le système ne fonctionne pas. Cependant, les mises à jour optiques sont impossibles, si le système cesse d'inhabituel et de redémarrage, les données ne sont pas enregistrées dans le disque seront perdues et les données sont appropriées. À ce stade, Refaire Journal a joué un rôle. InnoDB sera écrit dans le menu du journal avant que l'opération de mise à jour ne se produise (comment écrire des données), puis mettez à jour la mémoire et éventuellement écrire le disque à l'heure appropriée. Écrivez un journal précédent, l'enregistrement de l'enregistreur, généralement WAL (technologie de journalisation précédente. L'apparition de Gaudo Log, en plus d'une amélioration effective, MySQL a une capacité de sécurité de problèmes et les données ne seront pas perdues. Dans des conditions inhabituelles.
Au cours du processus de mise en œuvre spécifique, la taille du journal de retouche est corrigée et un ensemble de quatre fichiers, chaque fichier est de 1 Go et quatre fichiers sont enroulées lors de la mise à jour.

Écrire une position enregistrée POSActuellement, après écriture, à la fin du quatrième fichier est écrit, réécrit du point de contrôle n ° 0

indique que l'emplacement est supprimé, lorsque les données sont mises à jour sur le disque, les points de contrôle reculez vers l'arrière.
La position entre les enregistrements de point de vente et les points de contrôle est l'espace qui peut être enregistré. Lors de la rédaction de la messagerie publicitaire à la suite du score de test, il est impossible d'effectuer de nouvelles opérations
Laissez le point de contrôle d'enregistrement des données.

INNODB_FLUSH_LOG_AT_TRX_COMMIT peut être défini sur 1,
Ouvrir la capacité de refaire la persévérance du journal de Redo.

2, Binlog

Binlog est le journal de la classe de serveur, principalement utilisé pour le stockage, lors de la sauvegarde, de la synchronisation du stockage, la récupération de données maléfique joue un rôle, commun Le format du journal est

rangées, mélanges, déclarations

.

peut être activé par sync_binlog = 1 pour faire pivoter le disque.

Ceci est distingué de Binlog et de Refaire:

Oncers, Binlog est une classe de serveur, tous les poissonsLe moteur C peut être utilisé. Redo Log est unique pour Innodb.
Le type est différent, Binlog est une logique logique, enregistrée comme logique d'origine de la commande (par rapport à la commande). Redo Log est un journal physique, comment enregistrer la page de données faite.

Les données d'écriture sont différentes et les journaux de binog seront ajoutés, tandis que les journaux sont refaits. Fonctions, Binlog est utilisée pour stocker, tandis que les journaux sont utilisés pour garantir le coffre-fort

3, Soumettez deux étapes

une instruction mise à jour, processus de mise à jour en fonction de la Outil InnoDB comme suit. Après avoir mis à jour la mémoire,

sera enregistré à Redolog et à écrire un binlog dans une transaction pour le processus d'écriture de Redo Log et Binlog, dit souvent.

Utilisé pour que les données soient appropriées lorsqu'il existe une situation inattendue.

Ici, s'il n'utilise pas deux étapes de soumission?

Écrivez des débuts après avoir écrit Binlog, après avoir écrit un journal de retravailler, MySQL est un redémarrage étrangerLes règles et binlog ne sont pas écrites. Après le redémarrage, car le redologue a été écrit, le contenu de la base de données n'a aucun problème. Mais à ce stade, si vous souhaitez sauvegarder ou restaurer un binlog, on constate que la logique de mise à jour finale

conduira à des données.
Après avoir écrit Binlog et le remake des journaux. Binlog est écrit, l'exception MySQL est redémarré et le journal de remake n'est pas écrit. Après le redémarrage est redémarré, le journal de retouche est découvert pour être écrit avec succès.

Cette mission de trading est invalide et cette fois-ci Binlog a une instruction mise à jour de données naturelles incompatibles après la récupération.





Envoyez deux étapes suivantes:

Après avoir écrit le journal de Redo préparé la scène, après le redémarrage, la signature du Japon n'écrit pas sans écrire, découvrez cette transaction.

Si elle achemine lors de la rédaction de binlog, on constate que Binlog n'est pas écrit, manipulant la restauration si les journaux et le binlog de rachat se sont effondrés, TLa détection de salut n'est pas envoyée, puis effectuez un engagement


Résumé

Au début de l'article, l'architecture globale de MySQL est divisée en couches et moteur de serveur. Les couches et les processus d'exécution d'une déclaration explicative courte. Après cela, MySQL a sélectionné InnoDB comme outil par défaut après 5,5, en raison de davantage de transactions myisam et de la sécurité des incidents.

Crash Safe est fabriqué par Redo Log.
Avec Redo Logs Les mêmes fichiers journaux avec Binlog, sont le journal de l'outil Server, pour stocker et sauvegarder les données. Enfin, pour assurer la cohérence des données, le journal de refonte et la binlog sont placés dans la même transaction, ce qui signifie que les activités envoient deux étapes mentionnées.

Sujets

Catégories