欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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锁机制之行级锁