Mysql基础(5)--锁

​ 锁机制:数据库为了保证数据的一致性,在共享的资源被并发访问时变得安全所设计的一种规则。
​ 锁机制类似多线程中的同步,作用就是可以保证数据的一致性和安全性。
按操作分类
​ 共享锁:也叫读锁。针对同一份数据,多个事务读取操作可以同时加锁而不互相影响, 但是不能修改数据。
​ 排他锁:也叫写锁。当前的操作没有完成前,会阻断其他操作的读取和写入。
按粒度分类
​ 表级锁:会锁定整个表。开销小,加锁快。锁定力度大,发生锁冲突概率高,并发度低。不会出现死锁情况
​ 行级锁:会锁定当前行。开销大,加锁慢。锁定粒度小,发生锁冲突概率低,并发度高。会出现死锁情况。
按使用方式分类
​ 悲观锁:每次查询数据时都认为别人会修改,很悲观,所以查询时加锁。
​ 乐观锁:每次查询数据时都认为别人不会修改,很乐观,但是更新时会判断-下在此期间别人有没有去更新这个数据。

image-20210810142948317

InnoDB共享锁

image-20210810190521927

采用带有索引的列进行加锁,加的是行锁,如果是不带索引的列,就会提升为一个表锁

共享锁和共享锁是兼容的

数据可以被多个事务查询,但是不能进行修改数据

InnoDB排他锁

image-20210810190629308

普通查询没问题,只要是加锁查询就有问题了

排他锁和共享锁不兼容

排他锁和排他锁不兼容

MyISAM读锁

image-20210810191212689

要想让修改操作成功,必须解锁,而不是上面两种只要commit就可以了

MyISAM读锁

image-20210810191630159

要想其他连接操作成功,也是必须解锁

悲观锁和乐观锁

了解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

?abc!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值