作者:手机用户2602919091 | 来源:互联网 | 2020-08-21 02:06
MySQL数据库中的锁有共享锁,排他锁,行锁,表级锁,行级锁以及页面锁。
产生排他锁的sql语句:
select * from ad_plan for update;
3、行锁(Row Lock)
对一行记录加锁,只影响一条记录。
通常用在DML语句中,如INSERT, UPDATE, DELETE等。
InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。
InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!
4、锁的密度
根据锁的级别或密度来划分,MySQL有三种锁的级别:页级、表级、行级。
(1)表级锁
开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
(2)行级锁
开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
(3)页面锁
开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。
以上就是mysql数据库锁有哪些的详细内容,更多请关注 第一PHP社区 其它相关文章!