MySql数据库锁机制-悲观锁和乐观锁

数据库锁机制

数据库锁的种类一般分为两种:一种是悲观锁,一种乐观锁。

悲观锁:
		又称排他锁,具有很强的排他性,在数据处理过程中会将数据出于锁定状态,
	悲观锁的实现往往是依靠数据库提供的锁机制。关系数据库锁机制有:
	行级锁,标级锁,读锁,写锁,都是在操作之前先上锁。
	悲观锁的隔离级别可以看做可重复读。
乐观锁:
	相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制,大多是基于版本
	号( Version )记录机制实现,而不需要借助数据库的锁机制。
	乐观锁的实现
	乐观锁的本质不是锁,其隔离级别可以看作为读未提交
悲观锁的优缺点:

悲观锁的优点是能避免冲突的发生。

悲观锁的缺点是开销较大,而且加锁时间较长,对于并发的访问性支持不好。

乐观锁的优缺点:

乐观锁的优点是避免了长事务中的数据库加锁解锁开销,大大提升了大并发量下的系统整体性能表现。

乐观锁的缺点是只能在提交数据时才发现业务事务将要失败,如果系统的冲突非常的多,而且一旦冲突就要因为重新计算提交而造成较大的代价的话,乐观锁也会带来很大的问题。

乐观锁与悲观锁的选择:

乐观锁适用多读场景。
悲观锁适用于多写的场景,避免了产生冲突。

注意:
MyISAM 和 InnoDB 关于锁方面的区别是什么

MyISAM 默认用的是表级锁,不支持行级锁

InnoDB 默认用的是行级锁,也支持表级锁

mySql默认引擎是InnoDB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值