仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 685|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL编程:SQLServer中逝世锁发生的缘故原由及办理举措

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
由于MySQL数据库已经如此普及,对企业来说它无疑是一个更好的选择。server|sqlserver|办理实在一切的逝世锁最深层的缘故原由就是一个:资本合作
体现一:
一个用户A会见表A(锁住了表A),然后又会见表B
另外一个用户B会见表B(锁住了表B),然后妄图会见表A
这时候用户A因为用户B已锁住表B,它必需守候用户B开释表B,才干持续,好了他白叟家就只好老厚道其实这等了
一样用户B要等用户A开释表A才干持续这就逝世锁了
办理办法:
这类逝世锁是因为你的程序的BUG发生的,除调剂你的程序的逻辑别无他法
细心剖析你程序的逻辑,
1:只管制止同时锁定两个资本
2:必需同时锁定两个资本时,要包管在任什么时候刻都应当依照不异的按次来锁定资本.

体现二:
用户A读一条记录,然后修正该条记录
这是用户B修正该条记录
这里用户A的事件里锁的性子由共享锁妄图上升到独有锁(forupdate),而用户B里的独有锁因为A有共享锁存在以是必需等A释
放失落共享锁,而A因为B的独有锁而没法上升的独有锁也就不成能开释共享锁,因而呈现了逝世锁。
这类逝世锁对照潜伏,但实在在稍年夜点的项目中常常产生。
办理办法:
让用户A的事件(即先读后写范例的操纵),在select时就是用Updatelock
语法以下:
select*fromtable1with(updlock)where....



据我的观察,现在有一个趋势,那些经过正式培训的数据库管理员DBA更倾向于选择一个专有关系数据库,例如Oracle。对于一些具有专门数据库管理员的比较大的环境来说,MySQL很难得到宠爱,这时候,关于MySQL是否真的具有良好的可扩展性的争论已经没有意义。
爱飞 该用户已被删除
沙发
发表于 2015-1-19 15:23:46 | 只看该作者
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
再现理想 该用户已被删除
板凳
发表于 2015-1-27 16:26:41 | 只看该作者
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
第二个灵魂 该用户已被删除
地板
发表于 2015-2-5 10:27:59 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
山那边是海 该用户已被删除
5#
发表于 2015-2-11 09:30:10 | 只看该作者
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
兰色精灵 该用户已被删除
6#
发表于 2015-3-2 09:40:37 | 只看该作者
发几份SQL课件,以飨阅者
简单生活 该用户已被删除
7#
发表于 2015-3-11 03:10:27 | 只看该作者
习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
飘灵儿 该用户已被删除
8#
发表于 2015-3-24 22:22:48 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-4 08:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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