mysql的表锁和行锁

本文探讨了InnoDB和MyISAM两种数据库引擎的锁机制。InnoDB的行锁在使用索引时能提高并发性能,但可能导致死锁;而MyISAM的表锁开销小,加锁快,但并发处理能力较低。了解这些差异有助于优化数据库性能。
摘要由CSDN通过智能技术生成

行锁(出现在InnoDB数据库引擎中,InnoDB的行锁还是表锁取决于筛选条件中字段是否建立了索引,如果筛选条件中的字段建立了索引,则是行锁,如果没有建立索引,加的就是表锁

1.优点

锁的粒度小,发生锁冲突的概率比较低,处理并发能力强

2.缺点

开销大,加锁慢,会出现死锁

3.加锁方式

自动加锁:对于增删改等操作,InnoDB会自动给涉及到的数据集加上排他锁;对于查询操作InnoDB不会加任何锁

表锁(出现在MyISAM、MEMORY、MERGE数据库引擎中)

1.优点

开销小,加锁速度快,不会出现死锁

2.缺点

锁的粒度比较高,发生锁冲突的概率比较大,处理并发性能低

3.加锁方式

自动加锁:增删改操作会自动给涉及到的表加写锁,查询操作会自动给涉及到的表加读锁

写锁(排他锁):其他事务不能读也不能写

读锁(共享锁):其他事务可以读但不能写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值