Maison > base de données > tutoriel mysql > Comment résoudre la lecture fantôme MySQL ?

Comment résoudre la lecture fantôme MySQL ?

Guanhui
Libérer: 2020-06-18 15:39:15
original
3591 Les gens l'ont consulté

Comment résoudre la lecture fantôme MySQL ?

Comment résoudre la lecture fantôme MySQL ?

1. Instantané MVCC, enregistre un instantané des données historiques et garantit que la transaction en cours est invisible lorsque sa transaction ajoute ou supprime des données

La plupart des bases de données Contrôle de concurrence multi-version ; est mis en œuvre et tout est réalisé en enregistrant des instantanés de données.

En prenant InnoDB comme exemple, il y a deux sauts de mots redondants dans chaque ligne. L'une est la version créée de la ligne et l'autre est la version supprimée (expirée) de la ligne. Le numéro de version augmente automatiquement à chaque transaction. Chaque fois qu'une transaction récupère des données, elle récupère les données dont la version de création est inférieure à la version actuelle de la transaction et les données dont la version expirée est supérieure à la version actuelle.

La sélection ordinaire est la lecture d'un instantané.

select * from T where number = 1;
Copier après la connexion

2. Le verrouillage "next-key", verrouille l'écart entre la ligne de données actuelle et les données précédentes et les données suivantes pour garantir que les données lues dans cette plage sont cohérentes.

Le verrou à clé suivante se compose de deux parties

  • Verrouillage d'enregistrement (verrouillage de rangée)

  • Verrouillage d'espacement

Les verrous d'enregistrement sont des verrous ajoutés aux index, et des verrous d'espacement sont ajoutés entre les index. (Réflexion : que se passera-t-il s'il n'y a pas d'index sur la colonne ?)

select * from T where number = 1 for update;
select * from T where number = 1 lock in share mode;
insert
update
delete
Copier après la connexion

Tutoriel recommandé : "Tutoriel MySQL"

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal