找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 5559|回复: 10

[数据库知识]  数据库死锁的基本解释

[复制链接]
发表于 2010-5-18 09:41:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×

 数据库死锁的基本解释

基本解释
  每个使用关系型数据库的程序都可能遇到数据死锁[1]的情况。理解什么是死锁之前先要了解锁定的概念:如果需要“修改”一条数据,首先数据库管理系统会在上面加锁,以保证在同一时间只有一个事务能进行修改操作。锁定(Locking)发生在当一个事务获得对某一资源的“锁”时,这时,其他的事务就不能更改这个资源了,这种机制的存在是为了保证数据一致性。
  多数情况下,可以认为如果一个资源被锁定,它总会在以后某个时间被释放。而死锁发生在当多个进程访问同一数据库时,其中每个进程拥有的锁都是其他进程所需的,由此造成每个进程都无法继续下去。简单的说,进程A等待进程B释放他的资源,B又等待A释放他的资源,这样就互相等待就形成死锁。
死锁原因
  一般情况只发生锁超时,就是一个进程需要访问数据库表或者字段的时候,另外一个程序正在执行带锁的访问(比如修改数据),那么这个进程就会等待,当等了很久锁还没有解除的话就会锁超时,报告一个系统错误,拒绝执行相应的SQL操作。
  发生死锁的情况比较少,比如一个进程需要访问两个资源(数据库表或者字段),当获取一个资源的时候进程就对它执行锁定,然后等待下一个资源空闲,这时候如果另外一个进程也需要两个资源,而已经获得并锁定了第二个资源,那么就会死锁,因为当前进程锁定第一个资源等待第二个资源,而另外一个进程锁定了第二个资源等待第一个资源,两个进程都永远得不到满足。
  。

发表于 2010-6-26 15:54:39 | 显示全部楼层
终于明白什么是‘死锁’了,非常感谢楼主。
发表于 2010-7-21 20:25:51 | 显示全部楼层
谢谢楼主对死锁的描述。
发表于 2011-6-29 00:18:54 | 显示全部楼层
受教了,非常感谢!
发表于 2011-7-7 10:19:48 | 显示全部楼层
谢谢楼主,学习了!
发表于 2011-7-10 10:37:04 | 显示全部楼层
学习了!学习了!
发表于 2011-7-13 16:13:58 | 显示全部楼层
楼主好人,不用花金币就能学知识,但愿大家多这样发帖,哈哈...
发表于 2011-8-25 09:53:39 | 显示全部楼层
受教了,非常感谢!
发表于 2011-8-29 13:29:30 | 显示全部楼层
xiexie
发表于 2011-12-26 09:38:37 | 显示全部楼层
数据库死锁的基本解释
回复 点赞 拍砖

使用道具 举报

发表于 2018-3-27 14:46:31 | 显示全部楼层
请问怎么解决?
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-4-27 03:53 , Processed in 0.056560 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表