|NO.Z.00155|——————————|BigDataEnd|——|Java&MySQL.高级.V27|——|MySQL.v28|锁分类|

一、MySQL的锁分类
### --- mysql锁分类

——>        MySQL数据库由于其自身架构的特点,存在多种数据存储引擎, 
——>        MySQL中不同的存储引擎支持不同的锁机制。
——>        MyISAM和MEMORY存储引擎采用的表级锁,
——>        InnoDB存储引擎既支持行级锁,也支持表级锁,默认情况下采用行级锁。
——>        BDB采用的是页面锁,也支持表级锁
### --- 按照数据操作的类型分

——>        读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响。
——>        写锁(排他锁):当前写操作没有完成前,它会阻断其他写锁和读锁。
### --- 按照数据操作的粒度分
——>        表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
——>        行级锁: 开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
——>        页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般
### --- 按照操作性能可分为乐观锁和悲观锁

——>        # 乐观锁:一般的实现方式是对记录数据版本进行比对,
——>        在数据更新提交的时候才会进行冲突检测,如果发现冲突了,则提示错误信息。
——>        # 悲观锁:在对一条数据修改的时候,为了避免同时被其他人修改,
——>        在修改数据之前先锁定,再修改的控制方式。
——>        共享锁和排他锁是悲观锁的不同实现,但都属于悲观锁范畴。

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on 2022-04-06 16:05  yanqi_vip  阅读(25)  评论(0)    收藏  举报

导航