Maison > Article > base de données > Comment résoudre une lecture non répétable dans MySQL
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.
[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);<.> Mise à jour :
update user set age = 11 where id = 1;L'opération de mise à jour est implémentée par suppression+ajout. Tout d'abord, marquez les données actuelles à supprimer . puis ajoutez une nouvelle donnée : 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;Opération de requête :
select * from user where id = 1;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!