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

建设服装网站目的和作用做3d图的网站有哪些软件下载

建设服装网站目的和作用,做3d图的网站有哪些软件下载,4网站建设,网站优化 kpsmysql锁之乐观锁、悲观锁、表锁、行锁、共享锁、排他锁 MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一个资源的机制#xff0c;在数据库中#xff0c;除传统的计算资源#xff08;CPU、RAM、I/O#xff09;的争用以外#xff0c;数据也是一种供许多用户共享的资…mysql锁之乐观锁、悲观锁、表锁、行锁、共享锁、排他锁 MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一个资源的机制在数据库中除传统的计算资源CPU、RAM、I/O的争用以外数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所在有数据库必须解决的一个问题锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说锁对数据库而言显得尤其重要也更加复杂。 一、乐观锁Optimistic Lock MySQL中的乐观锁主要通过CAS的机制来实现一般通过version版本号来实现。 CAS是项乐观锁技术当多个线程尝试使用CAS同时更新同一个变量时只有其中一个线程能更新变量的值而其它线程都失败失败的线程并不会被挂起而是被告知这次竞争中失败并可以再次尝试。 比如扣减库存问题通过乐观锁可以实现如下 //查询出商品信息storeNum 10 select storeNum from items where id1 //根据商品信息生成订单 //修改商品storeNum为2 update items set storeNum2 where id1 and storeNum 10;我们在更新之前先查询一下库存表中当前库存数storeNum然后在做update的时候以库存数作为一个修改条件。当我们提交更新的时候判断数据库表对应记录的当前库存数与第一次取出来的库存数进行比对如果数据库表当前库存数与第一次取出来的库存数相等则予以更新否则认为是过期数据。 二、悲观锁Pessimistic Lock ​ 悲观锁的特点是先获取锁再进行业务操作即“悲观”的认为获取锁是非常有可能失败的因此要先确保获取锁成功再进行业务操作。通常所说的“一锁二查三更新”即指的是使用悲观锁。通常来讲在数据库上的悲观锁需要数据库本身提供支持即通过常用的select … for update操作来实现悲观锁。当数据库执行select for update时会获取被select中的数据行的行锁因此其他并发执行的select for update如果试图选中同一行则会发生排斥需要等待行锁被释放因此达到锁的效果。select for update获取的行锁会在当前事务结束时自动释放因此必须在事务中使用。 悲观锁的流程 在对记录进行修改前先尝试为该记录加上排他锁exclusive locking。 如果加锁失败说明该记录正在被修改那么当前查询可能要等待或者抛出异常。具体响应方式由开发者根据实际需要决定。 如果成功加锁那么就可以对记录做修改事务完成后就会解锁了。 其间如果有其他对该记录做修改或加排他锁的操作都会等待我们解锁或直接抛出异常。 比如淘宝下单过程中扣减库存的需求说明一下如何使用悲观锁 //0.开始事务 begin; //1.查询出商品信息 select storeNum from items where id1 for update; //2.修改商品storeNum 为2 update items set storeNum2 where id 1; //3.提交事务 commit;在对id 1的记录修改前先通过for update的方式进行加锁然后再进行修改。这就是比较典型的悲观锁策略。 如果以上修改库存的代码发生并发同一时间只有一个线程可以开启事务并获得id1的锁其它的事务必须等本次事务提交之后才能执行。这样可以保证当前的数据不会被其它事务修改。 上面提到使用select…for update会把数据给锁住不过我们需要注意一些锁的级别MySQL InnoDB默认行级锁。行级锁都是基于索引的如果一条SQL语句用不到索引的话优化器在选择时候如果发现锁表可能性能更好的话有可能会直接锁表。 三、表级锁Table-level lock 直接给整个表添加锁 select storeNum from items where name王五周八 for update;InnoDB在使用过程中只要不通过索引检索数据时全部是表锁。 开销小加锁快不会出现死锁锁定粒度大发生锁冲突的概率最高并发度最低 MyISAM在执行查询语句SELECT前会自动给涉及的所有表加读锁在执行更新操作UPDATE、DELETE、INSERT等前会自动给涉及的表加写锁这个过程并不需要用户干预因此用户一般不需要直接用LOCK TABLE命令给MyISAM表显式加锁。 四、行级锁record Locks 使用InnoDB中给添加指定的行添加锁 select storeNum from items where id10 for update;InnoDB行锁是通过给索引上的索引项加锁来实现的这一点MySQL于Oracle不同后者是通过在数据块中对相应的数据行加锁来实现的InnoDB只有通过索引条件检索数据InnoDB才使用行级锁 行锁的劣势开销大加锁慢会出现死锁 行锁的优势锁的粒度小发生锁冲突的概率低处理并发的能力强 五、共享锁share lock 共享锁又称读锁允许一个事务去读取一行阻止其他事务获得相同数据集的排它锁若事务T对数据对象A加上S锁则事务T可以读A但不能修改A其他事务只能对再对A加S锁而不能加X锁直到T释放A上的锁这保证了其他事务可以读A但在释放A上的S锁之前不能对A做任何修改。 六、排他锁exclusive lock 排它锁又称写锁允许获取排它锁的事物更新数据阻止其他事务取得相同的数据集共享读锁和排它写锁若事务T对数据对象A加上X锁事物T可以读A也可以修改A其他事务不能再对A加任何锁直到T 释放A上的锁
http://www.hkea.cn/news/14502993/

相关文章:

  • 做货代哪个网站上好找客户php网站后台密码忘记了
  • 做外贸自己的公司网站wordpress插件外贸
  • 网站排名优化学习网站建设的成本有哪些内容
  • 个人网站备案名字重要吗多配色创意metro风格企业网站织梦模板整
  • 威海相亲网站网站dns服务
  • 长治网站建设龙采科技技术支持网站建设近义词
  • 汉口网站推广优化代码审计wordpress
  • led灯什么网站做推广好网站代备案流程
  • 武进网站建设价位网站的空间是什么意思
  • 网站开发免费视频教程十大看免费行情的软件下载
  • 福州网站制作有限公司app开发商城
  • 泗阳做网站商务软文写作300字
  • 可以自己做视频网站吗国内主机wordpress
  • 怎样在微信公众号里做微网站浙江网站建设费用
  • 不备案的网站有那些攀枝花建设规划网站
  • 做网站_没内容自己制作上传图片的网站怎么做
  • 做网站需要先申请域名微营销工具有哪些
  • 开网上授课的网站应该怎么做wordpress标题加密
  • 网站架构模板wordpress后台教程
  • 网站建设及域名云平台网站优化
  • 桌面上链接网站怎么做南京百度关键字优化价格
  • 阜阳专业网站建设赣州经济
  • 做京东网站需要哪些手续深圳做网站(推荐乐云践新)
  • 中国建设银行手机银行下载官方网站哪家网站游戏做的比较好的
  • 摄影师网站制作电商运营一般要学多久
  • 音乐网站首页设计网址转化短链接
  • 全国好的深圳网站设计如何对网站进行爬虫
  • 宝安有效的网站制作办公空间设计原则
  • 做一个个人网站多少钱用win2008做网站
  • 专做定制网站建设wordpress收费播放插件