mysql的锁机制

Mysql锁

锁是计算机协调多个进程后线程并访问某一资源的机制。

表级锁:开销小,加锁快;不会出现死锁;锁的粒度大,发生锁冲突的概概率最高,并发最低

行级锁:开销大,加锁慢;不会死锁;锁定粒度最小,发生冲突的概率低,并发度也最高

MyISAM表锁(查询多的地方)

Mysql的表级锁有两种模式:表共享读锁表独占写锁

写锁:左边窗口lock  table  nihao  write锁住,右边查询,无法查出数据

                当左边unlock  table的时候,右边立马查询出数据

                这个窗口的增删改查都可以进行,另外的窗口不行

 读锁:谁都不可以写,不管是哪个线程

 注意:MyISAM在执行查询语句之前,会自动给涉及的所有表加读锁,在执行更新操作前,会自动给涉及的表加写锁,这个过程并不需要用户干预,因此用户一般不需要使用命令来显示加锁。

InnoDB锁(增删改多的地方)

1、事务及其ACID属性

事务是由一组SQL语句组成的逻辑处理单元,事务具有4个属性,通常称为事务的ACID属性

原子性、一致性、隔离性、持久性

2、并发事务处理带来的问题

相对于串型处理来说,并发事务处理能大大增加数据库资源的利用率,提高数据库系统的事务吞吐量,从而可以支持更多用户并发操作,与此同时会带来一些列的问题

脏读、不可重复读、幻读

InnoDB的行锁模式及加锁方法

共享锁:读锁,允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁

排它锁:写锁,允许获取排它锁的事务更新数据,阻止其他事务获取相同的数据集共享锁和排他写锁

InnoDB行锁实现方式

InnoDB行锁是通过给索引上的索引项加锁来实现的,只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值