MySql之行级锁
程序员文章站
2024-01-13 15:10:46
...
mysql锁机制之行级锁:
锁实在执行多线程时用于强行限定资源访问的同步机制,数据库锁根据锁的粒度可分为行级锁,表级锁和页级锁。
行级锁
行级锁是mysql中粒度最细的一种锁机制,表示只对当前所操作的行记性加锁,行级锁发生冲突的概率低,其粒度最小,但是加锁的代价最大。行级锁分为共享锁和排他锁。
特点
开销大,加锁慢,会出现死锁;锁定粒度最小,发生锁冲突的概率最大,并发性也高;
实现原理
InnoDB行锁是通过给索引项加锁来实现的,这一点mysql和oracle不同,后者是通过在数据库中对相应的数据行加锁来实现的,InnoDB这种行级锁决定,只有通过索引条件来检索数据,才能使用行级锁,否则,直接使用表级锁。特别注意:使用行级锁一定要使用索引
简单的说,就是对行加锁,使得同事只有一个线程操作该行数据,但是对mysql而言,必须是对索引列加锁 for update 如:
set autocommit=0;
select * from student where userid='1' for update; #对行加锁
commit;#释放锁
参考博客:
mysql锁机制之行级锁
下一篇: 20 款优秀的 Linux 终端仿真器