Mysql锁机制简单认识和实际验证

一、锁的概念

锁是计算机协调多个进程或线程并发访问某一种资源的控制机制

二、读锁(共享锁)和写锁(排它锁)

读锁是针对同一资源数据,多个读操作之间互不影响

写锁当一个写操作未完成之前,会阻断其他写锁和读锁

三、三锁

表锁(偏读)

特点:偏myisam存储引擎,开销小,加索快,无死锁,锁粒度大,锁发生冲突概率低,并发低。

行锁(偏写)

特点:偏innodb存储引擎,开销大,加索慢,有死锁,锁定粒度小,锁发生冲突概率最低,并发高。

支持事务,采用了行级锁。

页锁(介于行表锁之间)

四、手动增加表锁/行锁命令

Lock table 表名 read/write,表名2 read/write,其他;

五、查看表上加过的锁

Show open tables;

六、解读锁和写锁命令

Unlock tables;

七、表锁的读锁问题案例

执行完unlock mylock;后,右边可以继续执行

八、表锁的写锁案例问题

 

九、表锁分析命令

Show status like ‘table%’;

分析参数1table_locks_immdediate:产生表级锁定次数,表示可以立即获取锁的查询次数,每次立即获取锁值+1

分析参数2tale_locks_waited:出现表级锁定争用而发生等待的次数(不能立即获取锁次数,每等待一次锁值+1),锁值越高说明表级锁争夺情况越严重

十、myisam读写锁调度是写优先,写锁后其他线程不能做任何操作,大量写会操作长时间的阻塞。

十一、查看当前数据库的事务隔离级别:show variables like ‘tx-isolation’;

十二、innodb自身采用了行级锁

多个线程或进程操作同一行会阻塞,不同行不阻塞,这就是冲突小

十三、行锁升级表锁情况,查询条件索引失效

十四、间隙锁的危害

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值