


Analyse approfondie du principe et de la mise en œuvre de MySQL MVCC
Analyse approfondie du principe et de la mise en œuvre de MySQL MVCC
MySQL est actuellement l'un des systèmes de gestion de bases de données relationnelles les plus populaires. Il fournit un mécanisme de contrôle de concurrence multiversion (MVCC) pour prendre en charge un traitement simultané efficace. MVCC est une méthode de gestion des transactions simultanées dans la base de données qui peut fournir une simultanéité et une isolation élevées.
Cet article fournira une analyse approfondie des principes et de la mise en œuvre de MySQL MVCC, et l'illustrera avec des exemples de code.
1. Principe MVCC
MVCC est implémenté sur la base du mécanisme de verrouillage au niveau des lignes de la base de données. Chaque transaction générera un identifiant de transaction unique lors de son exécution, appelé Transaction ID (TID en abrégé).
Dans MVCC, chaque ligne de données stocke plusieurs versions. Lorsqu'une transaction modifie une ligne de données, une nouvelle version de la ligne de données sera générée et cette version enregistrera l'ID de transaction, indiquant que la version a été générée par la transaction.
Lors de la lecture des données, chaque transaction ne peut voir que les versions des lignes de données produites par les transactions qui ont été validées avant son heure de début, et ne peut pas voir les modifications qui n'ont pas encore été validées par d'autres transactions.
Lors de la suppression de données, MySQL générera une marque de suppression et ne supprimera pas réellement les lignes de données. Cela permet de garantir que les opérations de lecture ne sont pas affectées par les opérations de suppression en cours.
2. Implémentation de MVCC
Dans MySQL, chaque ligne de données aura trois champs pour enregistrer les informations de version : créer le numéro de version (Créer une version), supprimer le numéro de version (Supprimer la version) et le numéro de version précédente (Version précédente).
Le numéro de version créé est utilisé pour enregistrer l'heure à laquelle la transaction a commencé, le numéro de version supprimé est utilisé pour enregistrer l'heure à laquelle la transaction a été soumise et le numéro de version précédent pointe vers la ligne de données de la version précédente.
Ce qui suit utilise un exemple de code pour illustrer comment MVCC est implémenté.
-- 创建测试表 CREATE TABLE `student` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `age` INT NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; -- 插入测试数据 INSERT INTO student (name, age) VALUES ('Alice', 20), ('Bob', 21); -- 打开事务1,插入一条数据 START TRANSACTION; INSERT INTO student (name, age) VALUES ('Charlie', 22); -- 打开事务2,读取数据,此时只能看到事务1之前的数据 START TRANSACTION; SELECT * FROM student; -- 输出:(1, 'Alice', 20), (2, 'Bob', 21) -- 提交事务1,释放事务1的锁 COMMIT; -- 在事务2中再次读取 SELECT * FROM student; -- 输出:(1, 'Alice', 20), (2, 'Bob', 21), (3, 'Charlie', 22) -- 关闭事务2 COMMIT; -- 删除数据,实际上是生成一个删除标记 START TRANSACTION; DELETE FROM student WHERE id = 2; -- 打开事务3,读取数据,此时只能看到事务3之前的数据 START TRANSACTION; SELECT * FROM student; -- 输出:(1, 'Alice', 20), (3, 'Charlie', 22) -- 提交事务3,数据行被删除 COMMIT; -- 在事务4中再次读取 SELECT * FROM student; -- 输出:(1, 'Alice', 20), (3, 'Charlie', 22)
Dans l'exemple ci-dessus, la transaction 1 a inséré une donnée et la transaction 2 ne peut voir les données qu'avant la transaction 1 avant que la transaction 1 ne soit validée. La transaction 3 supprime une ligne de données et génère une marque de suppression. La transaction 4 ne peut voir les données qu'avant la transaction 3 avant la validation de la transaction 3.
Grâce au mécanisme MVCC, différentes transactions peuvent lire et modifier la base de données simultanément, améliorant ainsi les performances de concurrence et l'isolation de la base de données.
3. Résumé
MVCC est l'un des mécanismes clés permettant à MySQL d'atteindre une simultanéité et une isolation élevées. En enregistrant les informations de version des lignes de données, MySQL peut fournir des opérations de lecture et d'écriture isolées entre différentes transactions. Dans le même temps, la mise en œuvre de MVCC entraîne également des frais supplémentaires, tels que le stockage d'informations de version supplémentaires et le traitement des opérations de suppression.
Comprendre les principes et la mise en œuvre de MVCC peut aider les développeurs à mieux utiliser le mécanisme de contrôle de concurrence de MySQL et à concevoir des applications de base de données hautes performances.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

Navicat lui-même ne stocke pas le mot de passe de la base de données et ne peut récupérer que le mot de passe chiffré. Solution: 1. Vérifiez le gestionnaire de mots de passe; 2. Vérifiez la fonction "Remember Motway" de Navicat; 3. Réinitialisez le mot de passe de la base de données; 4. Contactez l'administrateur de la base de données.

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

NAVICAT pour MARIADB ne peut pas afficher directement le mot de passe de la base de données car le mot de passe est stocké sous forme cryptée. Pour garantir la sécurité de la base de données, il existe trois façons de réinitialiser votre mot de passe: réinitialisez votre mot de passe via Navicat et définissez un mot de passe complexe. Affichez le fichier de configuration (non recommandé, haut risque). Utilisez des outils de ligne de commande système (non recommandés, vous devez être compétent dans les outils de ligne de commande).

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".
