初识mysql数据库锁小结


mysql数据库一般分为两类:悲观锁和乐观锁。

悲观锁

悲观锁是我们常说的数据库锁机制。

悲观锁按照适用性质划分

悲观锁按照使用性质划分为共享锁和排它锁。

共享锁

共享锁又称读锁,当事务为某几行上读锁时,允许其他事务只可以针对这几行进行读操作,不允许其他事务给这几行上排它锁,但是允许上读锁。
上共享锁的写法:lock in share mode
eg:select match from 表 where metch > 60 lock in share dode;

排它锁

排它锁又称写锁,当一个事务对某几行上写锁时,不允许其他事务针对这几行进行写操作,但是允许读操作,更不允许其他事务给这几行上任何所,包括写锁。
上排它锁的写法:for update
eg:select match from 表 where mecth > 60 for update;

悲观锁按照作用范围划分

行锁

行锁即锁的作用是行级别,数据库能够不确定那些行需要锁的情况下使用行锁,如果不知道影响那些行的时候就会使用表锁。

表锁

锁的作用范围是整张表

乐观锁

一般是用户自己实现的锁机制。

总结
在mysql的InnoDB引擎中支持行锁,mysql的行锁是通过索引加载的,也就是行锁是加载索引响应的行上的,要是对应的sql没有走索引,则会全表扫描。
注意的地方:
1、行锁必须有索引才能实现,否则会自动锁住全表,那将不会是行锁;
2、两个事物不能锁同一个索引;
3、insert、delete、update在事物中会自动默认加上排它锁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值