Cet article vous apporte une introduction à la nécessité et à la classification des verrous dans 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.
Lorsque le nombre de visites d'utilisateurs augmente, la base de données est souvent le goulot d'étranglement des performances d'un système, mais pas seulement le goulot d'étranglement des performances, la sécurité des données apparaît également. À ce moment-là, le mécanisme de verrouillage est très. nécessaire.
Les problèmes de sécurité des données causés par la concurrence sont principalement divisés en trois aspects : la lecture sale, la lecture fantôme et la lecture non répétable
1. La lecture sale
La lecture sale est un. lecture transactionnelle Des données non validées provenant d'une autre transaction ont été obtenues.
时间线 事务1 事务2 1 begin; 2 select * from lock where id = 1; 3 begin; 4 update lock set name='dirty'; 6 select * from lock where id = 1; 7 commit; commit;
2. Lecture fantôme
La lecture fantôme se produit lorsqu'une transaction lit les données insérées par une autre transaction
时间线 事务1 事务2 1 begin; 2 select * from lock where id > 1; 3 begin; 4 insert lock select 2; 5 commit; 6 select * from lock where id > 1; 7 commit;
3. autorisé Lecture répétée
La lecture non répétable signifie que les résultats renvoyés en lisant plusieurs fois les mêmes données sont incohérents. Différent de la lecture sale, il s'agit de la lecture de données déjà soumises ; différente de la lecture fantôme, il s'agit de la mise à jour des données, tandis que la lecture fantôme insère des données.
时间线 事务1 事务2 begin; select * from lock where id = 1; begin; update lock set name='non-rr'; commit; select * from lock where id = 1; commit;
MySQL résout les trois problèmes ci-dessus en isolant les transactions
Il existe 4 niveaux d'isolement
隔离级别 脏读 幻读 不可重复读 未提交读(RUC) 是 是 是 已提交读(RC) 否 是 是 可重复读(RR) 否 是 否 可串行化 否 否 否
MySQL implémente l'isolation des transactions via le mécanisme de verrouillage
La classification des serrures est la suivante
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!