Mysql---锁

数据库锁。

从大到小。

数据库锁。把整个库锁了。整个库锁有啥用。比如备份某个节点的数据库。但是很少人这么做。因为你锁定了整个库,无论从库,还是主库,都是不允许的。影响正常运作。现在几乎很少这么玩。如果是用innodb,可以采用可重复读事务,采用视图的原理。这样就算死机,锁也是自然断开。

表锁。大家都有。锁整个表。表锁分元数据锁跟读写锁。元数据锁,是涉及元数据结构的修改。全部数据增删改都得暂停。读写锁,同样也影响其他事务的操作。读锁。可以共存读操作。

行锁。就锁定一行。比如操作id=1这行。唯有共同操作这行。才会存在竞争。

这也是平时经常遇到的锁。数据自动锁定的行级。这个行级锁是ninodb特有。也是自动锁定。

那怎么避开这玩意?

控制死锁。数据库自己检查死锁。但是整个耗数据库性能。

设置锁等待时间。

同一事务,尽量让热点数据最后操作。减少锁的时间。避开锁冲突。

热点数据,尽量采用中间件缓解锁冲突。尽量控制锁的并发个数。要不然会雪崩。

间隙锁。待续

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值