数据吧www.shujuba.net - 专注于企业级云服务器、云计算、网站高防CDN加速、服务器租用托管服务 - 站长资讯中心

数据吧 - 致力提供Linux(CentOS),Win2003,Win2008系统基础资料、vps云服务器安全防护知识、以及PHP,ASP环境搭建等。为各大中小站长、公司企业网站、虚拟主机、香港美国韩国日本台湾vps云服务器用户以及初学者或爱好者提供有用的资料文章。帮助大家学习和收集有用的教程。我们的宗旨是为大众站长提供优质的服务。

线上环境并发量比较大时导致数据库死锁检测方式及解决门道

      数据库是一个多用户使用的共享资源,当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严重影响应用的正常执行。

    做性能测试或者线上环境并发量比较大的时候经常出现数据库死锁的情况,下面介绍几种数据库死锁的检测方式和解决方式。都是采用sql命令实现的。如果不用命令行也可以通过查看数据库服务器的日志信息进行死锁检测,默认位置是mysql安装目录下的.error文件。也可以通过检测my.ini确定最终的路径
   在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。
  下面总结下这两种锁造成的常见的死锁情况与解决方案:

SQL数据库语法指令的整理以及总结

SQL

«1»

Powered By 站长资讯中心

站长资讯中心为您提供各类站长资讯,站长资料,我们的宗旨是为大众站长服务。您将在这里得到最新、最全、最专业的行业资讯及网站建设技术文档!