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

MySQL数据库锁的原因及解决方案

MySQL数据库锁的原因及解决方案
一个数据库,就像一个操作系统,是一个共享资源的用户使用,当多个用户访问数据的同时,也将在数据库中同一时间多个事务访问相同的数据。如果并发操作不受控制,错误的数据可以被读取和存储,和数据库一致性可以被摧毁。锁是一个非常重要的技术来实现对数据库的并发控制,锁相关的异常情况往往在实际应用中遇到的。当两个事务需要一组相互冲突的锁,而不是持续的事务时,就会发生死锁,这将严重影响应用程序的正常执行。
数据库中有锁的两种基本类型:独占锁,X锁和共享锁(共享锁,锁的)。当数据对象添加到它的锁,其他事务不能读取和修改,共享锁的数据对象可以被其他事务读取,但不能修改。数据库采用这两种基本的锁类型的交易数据库的并发控制。

第一例死锁

一个用户一个访问表A(锁定表A),然后访问表B;另一个用户B访问表B(锁定表B),然后尝试访问表A;然后用户因为用户有一个B锁定表B,它必须等待B用户的释放,以同样的用户b给用户一个释放表A继续,这个死锁是生成的。

uff1a解

这种僵局是比较常见的,由于程序的错误,并没有其他的方式来调整程序的逻辑,程序的逻辑分析,数据库的多表操作,尽量按照相同的顺序处理,尽量避免和锁资源,如A、B两桌,总是根据B的顺序,同时必须锁定两种资源,保证在任何时候都应该以相同的顺序来锁定资源。

僵局第二例

一个用户的查询记录,然后修改记录;然后用户B修改记录,然后锁定用户的交易特性,通过查询一个共享锁试图上升到独占锁,而用户B的专用锁,因为有一个共享锁,所以我必须等待一个发布和共享锁B由于独占锁起来的独占锁是不可能释放共享锁,所以是一个僵局,僵局更加隐蔽,但它经常发生在更大的项目。如果一个按钮被点击网页上的一个项目,按钮是不会立即失效,使用户会点击该按钮几次多次,因此同样的代码可以很容易地操作对数据库相同的记录好几次。

uff1a解

1、对于按钮等控件,单击后立即失效,不允许用户重复点击,避免同时出现同一记录。

2,使用乐观锁进行控制,大多数乐观锁基于数据版本(版本)记录机制,即向数据添加版本标识。In database version based solution, it is usually achieved by adding a version field to the database table.When the data is read out, the version number is read together, and then the version number is added when the update is updated.At this time, the version data of the submitted data is compared with the current version information corresponding to the database table. 如果提交的数据的版本号大于数据库表的当前版本号,它将被更新,否则将被认为是过时的。乐观的锁定机制避免数据库在长事务中被锁起来。没有数据库的数据锁定在用户A与B的操作,大大提高了大并发系统的整体性能。Hibernate乐观锁的实现建立在其数据访问引擎。应该指出的是,由于乐观锁机制是在我们的系统中实现,从外部系统操作用户更新不我们的系统控制,所以脏数据可以更新到数据库。

3、使用悲观锁进行控制。悲观锁是由数据库主要实现了基于锁机制,如Oracle的选择。FOR UPDATE语句以确保最大程度的经营垄断,但随之而来的是大量的开销在数据库的性能,特别是长期交易,这往往是难以承受的。作为一个金融系统,当操作者读取用户的数据,和修改基于数据读取用户(如更改用户帐户余额),如果悲观锁机制,也就意味着整个操作过程(读取数据,开始修改直到提交整个过程中,修改的结果从运营商甚至运营商到公司ffee时间),数据库记录始终处于锁定状态,你可以想象,如果面对成千上万的并发数百,这种情况将导致灾难性的后果。因此,悲观锁的使用必须考虑。

死锁第三例

如果事务中执行不符合要求的UPDATE语句,则执行整个表扫描,并将行级锁提升到表级锁。在执行了许多这样的事务之后,很容易产生死锁和阻塞。同样,当表中的数据量很大或索引太小或不合适时,系统就会变得越来越慢,最终会阻塞或死锁。

uff1a解

不要在SQL语句中使用与多个表相关联的复杂查询;使用执行计划分析SQL语句,并为完全扫描的SQL语句设置相应的索引。

5。总结

一般来说,内存泄漏和锁定表都是由贫穷引起的代码书写,提高代码的质量是最根本的解决办法。有人认为,意识到有必要实现的功能首先是错误的,当有错误在测试阶段。作为一个产品的质量是在制造工艺决定的,而不是质量检验的决定,在软件设计的质量和编码阶段就已经决定了,只是一个测试来验证软件的质量,因为测试不可能发现所有的bug的软件。

相关文章

云的文字效果快速绘制PS图象处理软

云的文字效果快速绘制PS图象处理软

绘制,边路,图象,处理软件,文字效果,今天,我学习计算机网络来介绍如何使用PS图象处理软件快速画云文本的特殊效果。PS图象处理软件可以用刷子和传递路径,描边路径选择和一些有趣的灯光效果。 完成以下效果。 完成后的效果 创建PS图象处理软…

旧JS动态添加事件——事件委托

旧JS动态添加事件——事件委托

动态添加,事件委托,事件,电脑软件,JS,所谓动态添加事件的本质是指js中的事件委托。 我们知道,在js中,事件处理只能绑定到当前选定的元素。换句话说,事件处理只能绑定到当前文档中已经存在的元素。但是,许多合作伙伴会遇到问题。我的元素稍后会…

excel数据绘制方法excel

excel数据绘制方法excel

数据,方法,绘制,电脑软件,excel,excel在使用办公时间时,可能需要很多时间来使用绘图数据的方法,可能有朋友不知道如何使用数据进行绘图,接下来是给大家带来excel数据使用的一种绘图方法,供大家参考。 excel使用数据绘图方法: 使用数据绘图步骤…

HTML5的新功能细节

HTML5的新功能细节

新功能,细节,电脑软件,HTML5是现在不是SGML的子集,主要是添加到图像,功能定位、存储、多任务等。 画布; 用于播放媒体的视频和音频元素; 很长一段时间的本地离线存储localStorage存储数据。当浏览器关闭时,数据不丢失;对sessionStorage数据浏…

如何压缩尺寸的大小在PPT2010制作

如何压缩尺寸的大小在PPT2010制作

压缩,大小,尺寸,电脑软件,当我们做了一个PPT演示文档的仔细,有许多高精度图片,从而导致整个文件的大小太大,它感动兆甚至几百兆几十人。即使出口仍然是PDF格式的文件上传,非常大,不可能实现的。在这种情况下,一个非常简单的设置可以压缩所有图片…

PS图象处理软件CS5迷你桥经验

PS图象处理软件CS5迷你桥经验

迷你,图象,处理软件,经验,电脑软件,Adobe Bridge是PS图象处理软件的一个文件浏览器,一个完全独立的应用程序,可以独立运行。桥,你可以查看和管理所有的图像文件,包括PS图象处理软件的PSD、AI、PDF文件。在一个隐喻,桥就相当于在Windows 7图书馆…

浅谈HTML中的标记

浅谈HTML中的标记

浅谈,标记,电脑软件,HTML,0。what is the mark xml代码将内容复制到剪贴板。 提示 检查,ID,链接,和标题标记在这里 1。布尔标记 作为例子检查 存在是应用,用于标记状态, 如果有一个变化是明显的,在中的价值总是检查,并没有获得属性的值的值…

TeamViewer无法连接到远程计算机

TeamViewer无法连接到远程计算机

连接到,电脑软件,TeamViewer,问:安装远程计算机系统是Windows 7 + TeamViewer 8版本,而该机安装Windows 8系统,用手机就可以连接到远程计算机,但计算机无法使用TeamViewer连接到远程计算机的连接,提示连接,以后将成为就绪状态。对不起,有什么事吗 …

制孔的PS图象处理软件彩色半调冲文

制孔的PS图象处理软件彩色半调冲文

文本过滤,图象,处理软件,彩色,电脑软件,本教程主要是为您介绍PS图象处理软件使用;彩色半调;一种制造冲压字符过滤。 1。首先创建一个新文档,然后输入文本并调整文本的大小,如图所示。 2、选择文字层,按Ctrl + E快速合并图层,然后选择菜单栏中的过…

如何做一个动态pptppt生产过程

如何做一个动态pptppt生产过程

动态,生产过程,如何做一个,电脑软件,pptppt,你知道如何制作动态PPT,向你展示如何制作动态PPT吗! 动态ppt的制作方法是: 桌面鼠标右键>新的>微软PowerPoint演示文稿: 打开PPT文档: 点击鼠标左键进入编舞模式: 在右边,有各种模板供你选择。我们选…

PS合成超级甜蜜情人节玫瑰海报

PS合成超级甜蜜情人节玫瑰海报

情人节,海报,甜蜜,电脑软件,PS,本教程主要是分享ps图像合成超甜情人节玫瑰海报教程,虽然时间不是很愉快,还是推荐它,希望朋友们有一个扔砖块的作用,希望大家同时也能通过本教程学到东西。 设计素描 uff1a 具体步骤如下: 第一步是找材料铺垫。 …

如何合并多个文件夹的文件和照片

如何合并多个文件夹的文件和照片

文件,照片,合并,多个,电脑软件,我每次旅行都要拍上几千张照片,然后根据拍摄日期回到笔记本上的文件夹里。因为有太多的照片,我把它们放在不同的目录,这样我就可以浏览目录时我被筛选。虽然一些专业的软件可以用来在幻灯片的形式显示照片,这是比…