一、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
标签:行锁,update,死锁,读锁,MYSQL,表锁 From: https://www.cnblogs.com/kkds/p/16727052.html