加入收藏 | 设为首页 | 会员中心 | 我要投稿 台州站长网 (https://www.0576zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

#8203;MySQL数据库中的锁有哪些类型

发布时间:2022-02-21 13:27:24 所属栏目:MySql教程 来源:互联网
导读:这篇文章给大家分享的是有关MySQL数据库中的锁有哪些类型的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 MySQL数据库中的锁有共享锁,排他锁,行锁,表级锁,行级锁以及页面锁。 1、共享锁(Shared Lock,也叫S锁) 共享锁(S)
      这篇文章给大家分享的是有关MySQL数据库中的锁有哪些类型的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
 
     MySQL数据库中的锁有共享锁,排他锁,行锁,表级锁,行级锁以及页面锁。
 
1、共享锁(Shared Lock,也叫S锁)
 
      共享锁(S)表示对数据进行读操作。因此多个事务可以同时为一个对象加共享锁。
 
产生共享锁的sql语句:
 
select * from ad_plan lock in share mode;
2、排他锁(Exclusive Lock,也叫X锁)
 
排他锁表示对数据进行写操作。如果一个事务对对象加了排他锁,其他事务就不能再给它加任何锁了。
产生排他锁的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数据库中的锁有哪些类型就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

(编辑:台州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读