Maison  >  Article  >  base de données  >  Introduction à l'utilisation du MVCC de MySQL

Introduction à l'utilisation du MVCC de MySQL

不言
不言avant
2019-03-22 11:30:514080parcourir

Cet article vous présente une introduction à l'utilisation du MVCC de MySQL. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

MVCC (Multi-version Concurrency Control)

Fonction : Dans de nombreux cas, il peut éviter les opérations de verrouillage et réduire les frais généraux.

MVCC sous InnoDB

est implémenté en enregistrant deux colonnes cachées derrière chaque ligne d'enregistrements, l'heure de création de la ligne et l'heure d'expiration de la ligne (heure de suppression). L'heure ici fait référence au numéro de version du système. Chaque fois qu'une nouvelle chose est démarrée, le numéro de version du système augmente automatiquement. Le numéro de version du système au début de la transaction sera utilisé comme numéro de version de la transaction, qui est utilisé pour comparer avec le numéro de version de chaque ligne d'enregistrements interrogés.

Opérations spécifiques de MVCC sous niveau d'isolement REPEATABLE READ

SELECT

InnoDB ne trouve que les lignes de données dont la version est antérieure à la version actuelle de la transaction (ligne numéro de version du système

est soit indéfinie, soit supérieure au numéro de version actuel de l'objet. Cela garantit que les lignes lues par la transaction ne sont pas supprimées avant le démarrage de la transaction.

Seuls les enregistrements qui remplissent les deux conditions ci-dessus peuvent renvoyer les résultats de la requête.

INSERT

InnoDB enregistre le numéro de version actuel du système en tant que numéro de version de ligne pour chaque ligne nouvellement insérée.

UPDATE

InnoDB insère une nouvelle ligne d'enregistrements, enregistre le numéro de version actuel du système en tant que numéro de version de la ligne et enregistre le numéro de version actuel du système dans la ligne d'origine comme identifiant de suppression de ligne.

DELETE

InnoDB enregistre le numéro de version actuel du système comme identifiant de suppression pour chaque ligne supprimée.

Cet article est terminé ici. Pour un contenu plus passionnant, vous pouvez prêter attention à la colonne Vidéo du didacticiel MySQL sur le site Web PHP chinois !

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