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

24次阅读
没有评论

共计 834 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章给大家分享的是有关 MySQL 数据库中的锁有哪些类型的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考。一起跟随丸趣 TV 小编过来看看吧。

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 数据库中的锁有哪些类型就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计834字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)