MYSQL锁机制行锁、表锁、死锁的实现

一、MYSQL锁是什么?有什么类别

锁定义 :

  同一时间同一个资源只能被一个线程访问

 

乐观锁和悲观锁

乐观锁用的最多的就是数据库中的表加了一个标识字段 version 

例如 update text set  a=a+1 where id=100 and a>0

锁发分类

 

 

表锁和行锁

行锁必须要有索引才可以实现,否则会自动锁全表,那么就不是行锁了

两个事务不能锁同一个索引

insert delete  update 在事务中默认都会加上排它锁

表锁

不会出现死锁,发生冲突的几率高并发低

 

 

从对数据的操作类型分法(读或者写)

读锁(共享锁):针对同一分数据,可以多个读的操作可以同事进行

写锁(排它锁): 当前操作没有完成前,它会阻断其他的其他读锁和写锁;

 

什么是死锁?

 

产生场景:两个事务都有 select  for  update , a先锁记录1 ,再锁记录2 ;而b先锁记录2在锁记录1 

写锁 for update ,读锁 for my share mode show engine innodb status 

 

posted @   常态绕NET  阅读(185)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示