mysql数据库中行级锁、表级锁和页级锁的区别是什么

54次阅读
没有评论

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

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

这篇文章主要介绍了 mysql 数据库中行级锁、表级锁和页级锁的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。

按粒度可以分为:1、行级锁,MySQL 中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁;2、表级锁,MySQL 中锁定粒度最大的一种锁,表示对当前操作的整张表加锁;3、页级锁,MySQL 中锁定粒度介于行级锁和表级锁中间的一种锁。

本教程操作环境:windows7 系统、mysql8 版本、Dell G3 电脑。

在关系型数据库中,可以按照锁的粒度把数据库锁分为行级锁 (INNODB 引擎)、表级锁(MYISAM 引擎) 和页级锁(BDB 引擎)。

MyISAM 和 InnoDB 存储引擎使用的锁:

MyISAM 采用表级锁(table-level locking)。

InnoDB 支持行级锁 (row-level locking) 和表级锁,默认为行级锁。

行级锁,表级锁和页级锁对比

行级锁:MySQL 中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁和排他锁。

特点:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

表级锁:MySQL 中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分 MySQL 引擎支持。最常使用的 MyISAM 与 InnoDB 都支持表级锁定。表级锁定分为表共享读锁 (共享锁) 与表独占写锁(排他锁)。

特点:开销小,加锁快;不会出现死锁;锁定粒度大,发出锁冲突的概率最高,并发度最低。

页级锁:是 MySQL 中锁定粒度介于行级锁和表级锁中间的一种锁。表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级,一次锁定相邻的一组记录。

特点:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般

以上就是 mysql 数据库中行级锁、表级锁和页级锁的区别是什么的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎来丸趣 TV 行业资讯!

向 AI 问一下细节

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