当前位置:首页 > 日记 > 正文

行级锁、表级锁、MySQL中的页级锁

行级锁、表级锁、MySQL中的页级锁
在计算机科学中,锁是一种在执行多线程时用来限制资源访问的同步机制,也就是用来保证并发控制中的互斥要求。

在数据库管理系统中,数据库锁可以分为行级锁(InnoDB引擎),表级锁(MyISAM引擎),页级锁(BDB引擎)根据锁的粒度。

一、行级锁

行级锁是在MySQL最好的锁,表明线路锁定只对当前操作的行。行级锁可以大大减少数据库操作的冲突,锁的粒度是最小的,但锁定成本也最大。行级锁分为共享锁和排它锁。

特征

高开销、慢锁、死锁、最小锁粒度、锁冲突的最低概率和最高并发性。

二、表类锁

表锁是MySQL中最大的锁定粒子。这意味着当前操作的整个操作被锁定。它实现简单,占用资源少。它是由大多数MySQL引擎支持。最常用的MyISAM和InnoDB支持表级锁,表级锁定分表共享读锁(共享锁)和表的排他锁(互斥锁)。

特征

低开销、快速锁定、无死锁、大锁粒度、锁定锁的最高概率和最低并发性。

三页级锁

表级锁是MySQL中行和表锁之间的锁定粒度中间的锁。表级锁是很快的,但是冲突多,水平线的冲突较少,但速度慢。这样一种妥协页面级带,和一组相邻的记录被锁定在一个time.bdb支持页级锁

特征

开销和锁定时间在表锁和行锁之间;死锁发生;锁粒度在表锁和行锁之间是有限的,并发是常见的。

MySQL通用存储引擎锁机制

MyISAM和内存使用表级锁(表级锁)
BDB使用页锁(页级锁定)或表级锁,默认页锁
InnoDB支持行级锁(行级锁)和表级锁,默认是行级锁
四行锁和表锁,InnoDB

如前所述,两行和表锁在InnoDB引擎的支持,所以当将整个表锁,当或只有一行被锁定

InnoDB锁是通过指数佳所指数来做到这一点,MySQL和Oracle,后者是通过在数据块对应的锁行achieve.innodb这行锁实现特征意味着可以使用一行只有通过索引条件检索数据,否则,InnoDB将使用一个表锁锁!

在实际应用中,应特别注意这一特点,InnoDB行锁,否则,它可能会导致大量的锁冲突,这会影响并发性能。

行级锁是索引的,如果SQL语句不使用行级锁而不用索引,则使用表级锁。行级锁的缺点是需要大量锁资源,所以速度慢,内存消耗。

五、行级锁和死锁

MyISAM没有死锁,因为MyISAM总是全部锁在一个所需要的时间,要么完全满意,或者都在等待,在InnoDB,锁逐步收购,导致死锁的可能性。

在MySQL中,行级锁不是直接锁定,但锁定指标。指标分为主键索引和非关键指标,如果一个主键的索引操作的SQL语句,MySQL将锁的关键指标;如果一个表的主键索引非手术首先,MySQL会锁定非主键索引,然后锁定的关键指标。当更新和删除操作,MySQL不仅锁都记录在索引扫描,而且锁相邻关键值,所谓的下一个关键的锁。

当两个事务同时执行时,一个锁在等待其他相关索引时逐渐索引,一个锁定非键索引,并等待主索引索引。这将导致死锁。

总的来说,InnoDB后才能检测到对生命和死亡的锁和事务释放锁回来了,和其他的锁来完成交易。

有许多避免死锁的方法。这里只有三种常见类型,如下所示

1,如果不同的程序可以同时访问多个表,尽可能一致地以相同的顺序访问表,则可以大大减少死锁的机会。

2。在同一事务中,尽可能多地锁定一次所需的资源,以减少死锁生成的概率。

三.对于很容易产生死锁的业务部分,您可以尝试使用递增锁定粒度,通过使用表级锁定来减少死锁发生的概率。

以上是本文的全部内容,希望能对大家有所帮助。

相关文章

也可以在不同的计算机之间复制和粘

也可以在不同的计算机之间复制和粘

文本,电脑软件,我爷爷最近开了个玩笑。他在家里的一个笔记本上用Ctrl + C复制文本,然后在另一台计算机上按下Ctrl + V。他认为只要他在同一个WiFi网络,他就可以粘贴。事实上,模仿软件可以使这个笑话成真。使用这个软件,我们可以在同一局域网内…

Dreamweaver是如何制作一个简单的

Dreamweaver是如何制作一个简单的

网页,简单,电脑软件,Dreamweaver,网页有很多软件。他们使用的是由FrontPage。现在Dreamweaver更专业了。当然,一些大的神可以用记事本写网站。 软件名称:Adobe Dreamweaver CC简体中文软件的规模正式版版本:324mb更新时间:2014-01-22 1。在桌…

PS图象处理软件教程:MM照片水晶广场

PS图象处理软件教程:MM照片水晶广场

图象处理,软件教程,广场,照片,背景,在本教程中,我们只需要使用一些过滤器来获取我们最喜欢的背景层效果。然后用ps的历史画笔工具还原照片中的人物。它简单快捷,值得初学者学习。 源材料uff1a 效果1: 影响两: 打开材质图片以调整颜色。 执…

MySQL解压配置步骤详细教程

MySQL解压配置步骤详细教程

配置,详细教程,步骤,电脑软件,MySQL,mysql-5.7.14-winx64 仓中配置的路径 复制my-default.ini在解压路径,并修改名称为my.ini 在my.ini添加以下 {他} basedir = C: 软件 mysql-5.7.14-winx64 MySQL datadir = C: 软件 MySQL mysql-5.7.14-winx…

PS图象处理软件壁纸眩光效果

PS图象处理软件壁纸眩光效果

壁纸,眩光,图象,处理软件,效果,最终效果 1,一个新的1024×768像素的文件,背景填充黑色,然后创建一个新层,使用椭圆选框工具拉一个大的圆形选择,按Ctrl + Alt + D为15像素,然后填充颜色:# ac9bcf,如下所示。 图1 2,使用椭圆选框工具画一个小圆圈选…

PS画一朵美丽的花

PS画一朵美丽的花

的花,画一,美丽,电脑软件,PS,这幅画可能是少数人的专利,但如果你能掌握平面设计工具,画上各种图案,如PS画花,今天萧边介绍PS画一朵美丽的花,我们希望能帮助和鼓励你。 步 1、启动PS图象处理软件CS5,执行文件-新的命令,一个大小为800 * 800建立一…

PHParray_keys返回键的数组

PHParray_keys返回键的数组

数组,返回键,电脑软件,PHParray_keys,array_keys收益全部或部分的数组名 解释 array_keys数组(数组混合search_value美元美元,bool,严格=假) array_keys($array)返回数值或字符串键的数组。 如果可选的search_value,它只返回键的值。否则,在美元…

Excel2003将基数词转换成序数词

Excel2003将基数词转换成序数词

序数词,基数,转换成,电脑软件,我们知道这是将英语的主教为序数更复杂的问题。因为它没有一个固定的模式:大多数的数字在变成序数词th后缀,但213、;期末数分别为stndrd结束;,,111213这3个数字都不一样,他们仍然是th最后,它似乎很复杂。其实,只要我们…

简单的js计算器实现

简单的js计算器实现

计算器,简单,电脑软件,js,这个例子为大家分享js计算器的实现代码,供大家参考,具体内容如下 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 U3000 + — * / U3000 U3000 U3…

PS与SAI相结合,把一个小女孩的照片

PS与SAI相结合,把一个小女孩的照片

照片,手绘,一个美丽,小女孩,效果,手绘需要一些手绘功能。在我们得到图片后,我们可以先混合颜色。我们有些不合格的部件要用液化过滤器修理。然后我们改变背景,然后我们可以画面部特征和头发在Sai。 原 最终效果 1,打开地图,首先复制一层,然后溶…

js仿真的地图类实现方法

js仿真的地图类实现方法

方法,仿真,地图,电脑软件,js,本文的例子讲述了js仿真的map类,供大家分享,供大家参考,如下: 关键----价值保留基于java的性能图 1。通过数组存储数据(使用闭包) 函数映射(){ 函数(键,值){ this.key =关键; this.value =价值; } 函数(键,值){ 对于(var i = 0…

javascript中内置函数减少应用的详细解决

javascript中内置函数减少应用的详细解决

解决方案,内置函数,详细,电脑软件,javascript,前言 一般来说,可以通过该方法减少逻辑可以通过foreach方法掩饰的实施,虽然目前还不清楚的是,浏览器的Javascript引擎是如何实现这两个方法但肯定C++水平,降低的方法有一个数组的遍历,在具体的实施细节是…