|NO.Z.00158|——————————|BigDataEnd|——|Java&MySQL.高级.V30|——|MySQL.v31|行级锁介绍|

一、行级锁(偏写)
### --- 行级锁介绍

——>        行锁的是mysql锁中粒度最小的一种锁,因为锁的粒度很小,
——>        所以发生资源争抢的概率也最小,并发性能最大,但是也会造成死锁,
——>        每次加锁和释放锁的开销也会变大。
### --- 使用MySQL行级锁的两个前提

——>        使用 innoDB 引擎
——>        开启事务 (隔离级别为 Repeatable Read )
### --- InnoDB行锁的类型

——>        共享锁(S):当事务对数据加上共享锁后, 其他用户可以并发读取数据,
——>        但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁。
——>        排他锁(X):如果事务T对数据A加上排他锁后,
——>        则其他事务不能再对数据A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。
### --- 加锁的方式

——>        InnoDB引擎默认更新语句,update,delete,insert 
——>        都会自动给涉及到的数据加上排他锁,select语句默认不会加任何锁类型,
——>        如果要加可以使用下面的方式:
——>        加共享锁(S):select * from table_name where ... lock in share mode;
——>        加排他锁(x):select * from table_name where ... for update;
### --- 锁兼容

——>        共享锁只能兼容共享锁, 不兼容排它锁
——>        排它锁互斥共享锁和其它排它锁
——>        行级锁都是基于索引的,如果一条 SQL 语句用不到索引是不会使用行级锁的,
——>        而会使用表级锁把
——>        整张表锁住,这点需要咱们格外的注意

 
 
 
 
 
 
 
 
 

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   yanqi_vip  阅读(16)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示