旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

MySQL中锁的必要性及分类引见【MySQL教程】,mysql

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:69评论:0


导读:本篇文章给人人带来的内容是关于MySQL中锁的必要性及分类引见,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。当用户访问量增进时,数据库往往是一个体系的...
本篇文章给人人带来的内容是关于MySQL中锁的必要性及分类引见,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

当用户访问量增进时,数据库往往是一个体系的机能瓶颈,但不光光是机能瓶颈,数据平安也会随之显现,这时候锁机制就异常有必要。

并发形成的数据平安题目重要分为3个方面:脏读、幻读、不可重复读

一. 脏读

脏读就是一个事件读取到了另一个事件未提交的数据。

时间线  事件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;

二. 幻读

幻读就是一个事件读到了另一个事件insert的数据

时间线       事件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;

三. 不可重复读

不可重复读就是屡次读取一致数据返回的效果不一致。同脏读差别,这是读取已提交的数据;同幻读也差别,这边是更新数据,幻读是插进去数据。

时间线   事件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经由过程对事件的断绝来处理以上三种题目
共有4种断绝级别

断绝级别           脏读   幻读   不可重复读
未提交读(RUC)       是     是      是
已提交读(RC)        否     是      是
可重复读(RR)        否     是      否
可串行化            否     否      否

MySQL经由过程锁机制来完成事件的断绝

锁的分类以下

以上就是MySQL中锁的必要性及分类引见的细致内容,更多请关注ki4网别的相干文章!

标签:mysql


欢迎 发表评论: