当前位置: 首页 > news >正文

江苏省建设厅官方网站资质查询河南省百城建设提质网站

江苏省建设厅官方网站资质查询,河南省百城建设提质网站,wordpress添加投稿,余姚电商交易网站建设转载自 并发控制--悲观锁和乐观锁详解背景考虑下面两个并发带来的问题#xff1a;1、丢失更新#xff1a;一个事务的更新结果覆盖了其它事务的更新结果#xff0c;即所谓的更新丢失。2、脏读#xff1a;当一个事务读取其它完成一半事务的记录时#xff0c;就会发生脏读取。…转载自 并发控制--悲观锁和乐观锁详解背景考虑下面两个并发带来的问题1、丢失更新一个事务的更新结果覆盖了其它事务的更新结果即所谓的更新丢失。2、脏读当一个事务读取其它完成一半事务的记录时就会发生脏读取。例如 两个用户同时修改商品库存表A、B同时进入看到的库存都是100A购买一件把库存修改为99(100-1)。此时B购买两件把库存修改为98(100-2)因为A、B同时读到的库存都是100B并不能看到A做的库存更新所以造成B脏读造成A丢失更新。所以为了解决这些并发带来的问题。 我们需要引入并发控制机制--锁。锁分类悲观锁 悲观锁就是用户修改数据时看起来很悲观保守态度担心别的用户会同时修改这条数据所以每次修改时会提前把这条数据锁定起来只有自己可修改但别的用户可以读等自己修改完了再释放锁。乐观锁 乐观锁就是用户修改数据时心态很乐观不管别人修改不修改数据我都不上锁我修改的时候判断下数据有没有发生变化没发生变化我就会更新成功发生变化了就不会更新成功我再去重试之前的动作直到更新成功。锁应用悲观锁 使用悲观锁的时候我们首先必须关闭mysql数据库的自动提交属性因为MySQL默认使用autocommit模式也就是说当你执行一个更新操作后MySQL会立刻将结果进行提交。 关闭命令为set autocommit0;悲观锁一般使用select…for update实现在执行的时候会锁定数据虽然会锁定数据但是不影响其他事务的普通查询使用。 在我们使用悲观锁的时候事务中的语句例如//开始事务 begin;/begin work;/start transaction; (三选一) //查询信息 select * from order where id1 for update; //修改信息 update order set namenames; //提交事务 commit;/commit work;(二选一)此处的查询语句for update关键字在事务中只有SELECT ... FOR UPDATE 或LOCK IN SHARE MODE 同一条数据时会等待其它事务结束后才执行一般的SELECT查询则不受影响。注意事项 执行事务时关键字select…for update会锁定数据防止其他事务更改数据。但是锁定数据也是有规则的。查询条件与锁定范围 1、具体的主键值为查询条件 比如查询条件为主键ID1等等如果此条数据存在则锁定当前行数据如果不存在则不锁定。2、不具体的主键值为查询条件 比如查询条件为主键ID1等等此时会锁定整张数据表。3、查询条件中无主键 会锁定整张数据表。4、如果查询条件中使用了索引为查询条件 明确指定索引并且查到则锁定整条数据。如果找不到指定索引数据则不加锁。乐观锁 1、使用自增长的整数表示数据版本号更新时检查版本号是否一致比如数据库中数据版本为666更新提交时version6661,使用该version值(667)与数据库version1(667)作比较如果相等则可以更新如果不等则有可能其他程序已更新该记录所以返回错误或者发起重试动作。例如表 student(id,name,version) 1     a       1 当事务一进行更新操作update student set nametxt where id #{id} and version #{version}; 此时操作完后数据会变为id 1,name txt,version 2当另外一个事务二同样执行更新操作的时候却发现version ! 1此时事务二就会操作失败从而保证了数据的正确性。2、使用时间戳来实现原理同上。3、使用其他数据库字段如金额更新时添加条件判断金额是否变化原理同上。乐观锁图示结论两种锁各有优缺点不能单纯的定义哪个好于哪个。乐观锁比较适合数据修改比较少读取比较频繁的场景即使出现了少量的冲突这样也省去了大量的锁的开销故而提高了系统的吞吐量。但是如果经常发生冲突写数据比较多的情况下上层应用不不断的retry这样反而降低了性能对于这种情况使用悲观锁就更合适。
http://www.pierceye.com/news/708042/

相关文章:

  • 自己做的网站别人打不开网络系统建设与运维职业技能等级证书
  • 签名能留链接的网站数据库网站建设公司
  • 网站权重不够高 导致创建网站销售产品
  • 中国建设报网站做网站如何文字链接文字
  • 网站建设网站多少钱网站上做值机的app
  • 百度手机网站提交做网站优化的教程
  • wordpress建站教程贴吧网站建设的论文的参考文献
  • 公司网站设计建议php7 wordpress
  • 商城网站建设策划书扬中会建网站
  • 铜陵市网站建设如何建立小程序商城
  • 大型网站运营步骤做网站f12的用处
  • 静态网站什么意思微信开发者工具打不开
  • 建站到网站收录到优化通化北京网站建设
  • 网站开发作用wordpress mysuc cms
  • 网站开发人员的职责是什么石家庄外贸建站公司
  • 内外外贸购物网站建设网站顶部下拉广告
  • 深圳企业网站建设服务平台销售推广语
  • 做网站要什么资料百度网盘登录
  • 聚牛网站建设公司北京seo优化推广
  • 成都网站公司网站建设东莞大岭山电子厂
  • python建立简易网站网站界面设计的分类有哪几种
  • 网络规划师考哪些内容优化设计卷子答案
  • 邢台网站关键词优化wordpress弹窗下载
  • 晋城市企业网站腾讯qq官网登录入口
  • 怎么给网站在百度地图上做爬虫一家专门做灯的网站
  • 河南焦作有做网站开发的公司吗xampp安装wordpress
  • python购物网站开发流程图win淘宝客wordpress主题模板
  • 江苏省建设执业网站个人做淘宝客网站有哪些
  • 浙江省建设厅门户网站咨询公司是干什么的
  • 哪个网站上可以做初中数学题wordpress 网校插件