Maison> base de données> tutoriel mysql> le corps du texte

Comment résoudre une lecture non répétable dans MySQL

coldplay.xixi
Libérer: 2020-09-02 13:50:19
original
8853 Les gens l'ont consulté

Méthode MySQL pour résoudre la lecture non répétable : le contrôle de concurrence multi-versions mvcc est adopté. mvcc utilise deux colonnes cachées après chaque donnée, à savoir le numéro de version de création et le numéro de version de suppression. Chaque transaction est là. sera toujours un numéro de version incrémentiel au début.

Comment résoudre une lecture non répétable dans MySQL

[Recommandations d'apprentissage associées :apprentissage mysql]

Méthode de MySQL pour résoudre les lectures non répétables :

Dans MySQL, le niveau d'isolement des transactions par défaut est répétable-lecture (repeatable-read). Afin de résoudre les lectures non répétables, innodb utilise. mvcc (plus de contrôle de concurrence de versions) pour résoudre ce problème.

mvcc utilise deux colonnes cachées (créer le numéro de version et supprimer le numéro de version) après chaque donnée. Chaque transaction aura un numéro de version incrémentiel au début

Nouveau :

insert into user (id,name,age)values(1,"张三",10);
Copier après la connexion
<. >

Comment résoudre une lecture non répétable dans MySQL

Mise à jour :

update user set age = 11 where id = 1;
Copier après la connexion

L'opération de mise à jour est implémentée par suppression+ajout. Tout d'abord, marquez les données actuelles à supprimer

.

Comment résoudre une lecture non répétable dans MySQL

puis ajoutez une nouvelle donnée :

Comment résoudre une lecture non répétable dans MySQL

Supprimer : L'opération de suppression consiste à mettre à jour directement le numéro de version supprimé des données avec le numéro de version de la transaction en cours

delete from user where id = 1;
Copier après la connexion

Comment résoudre une lecture non répétable dans MySQL

Opération de requête :

select * from user where id = 1;
Copier après la connexion
L'opération de requête est destinée à évitez d'interroger des données anciennes ou des données qui ont été modifiées par d'autres transactions, les conditions suivantes doivent être remplies :

1. Le numéro de version de la transaction en cours lors de l'interrogation doit être supérieur ou égal à la version de création. numéro

2. Lors de l'interrogation, le numéro de version de la transaction en cours doit être inférieur au numéro de version supprimé

, c'est-à-dire : create_version Cela peut éviter d'interroger des données modifiées par d'autres transactions

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!