自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 浅谈 SQL 中的锁(六)查看锁的基本方法

像前面的例子那样,阻塞事务的语句是必须的: --延长处理时间 waitfor delay '0:00:10' 这个语句代表在查询中等待 10秒,这样我们才能模拟并发的情况,如果事务很快执行完毕了,就无法重现并发的情况。 我在网上看到有些例子是使用 C#、Java 等语言启动多个线程去模拟并发,而不是使用阻塞,虽然这样更接近生产环境,但并不利于简化问题。多个线程模拟并发,取决于线程数和

2017-01-18 14:50:15 1305

原创 浅谈 SQL 中的锁(五)另一种解决方案

余额问题 http://blog.csdn.net/closurer/article/details/54291241 的处理,还有一种等价方法: update balance set value = value - 1 where id = 1 and value >= 1 用一个 update 语句表示如果用户余额足够,即扣减余额,数据库会对数据放置排它锁。这样既不会出现余额负数的

2017-01-16 16:51:57 458

原创 浅谈 SQL 中的锁(四)如何检查重复用户

上一节 http://blog.csdn.net/closurer/article/details/54342831 说了一个注册用户的事务没有互斥,导致注册用户失败的问题。 也说了解决方法就是使用 serializable 隔离级别去执行事务: --开始事务 begin transaction --设置串行式事务 set transaction isolation le

2017-01-12 17:15:14 544

原创 浅谈 SQL 中的锁(三)重复用户问题

拿 Web 项目中常见的注册用户场景做例子: --测试用户表 create table app_user ( mobile varchar(11) primary key ) --添加测试数据 delete app_user insert app_user values('13800001111') 现在新注册一个手机号为 13800002222 的用户: --开始

2017-01-11 14:05:06 759 1

原创 浅谈 SQL 中的锁(二)余额问题的处理

上次模拟了 SQL 中并发执行更新余额的语句,出现余额负数的问题: http://blog.csdn.net/closurer/article/details/54288628 现在说说它的解决方法。 事务要正确地执行,就需要【隔离性】这个基本要素。更新余额的语句之所以会偏离期望的结果,是由于查询并没有互斥,也就是没有相互隔离: --检查用户的余额是否足够 if(exist

2017-01-09 17:53:54 2492

原创 浅谈 SQL 中的锁(一)余额问题

这两天看到数据库的数据一致性和锁定的问题: http://bbs.csdn.net/topics/392072953 http://bbs.csdn.net/topics/392073296 写一个帖子专门说说这个。 举一个用户余额的例子,余额可以是现金、虚拟币、积分等,可以看作对数据准确度要求高的数据,一旦出错,就会造成客户或公司的直接损失。 在SQLServer建立

2017-01-09 14:25:54 2145

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除