上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页
摘要: 我们先做个测试: 接上篇日志建的商品表g和订单表o和触发器 假设:假设商品表有商品1,数量是10; 我们往订单表插入一条记录: insert into o(gid,much) values(1,20); 会发现商品1的数量变为-10了。这就是问题的所在,因为我们之前创建的触发器是after,也就是说触发的语句是在插入订单记录之后才执行的,这样我们就无法判断新插入订单的购买数量。 ... 阅读全文
posted @ 2017-07-31 16:29 左闯 阅读(2856) 评论(0) 推荐(0) 编辑
摘要: 触发器(trigger):监视某种情况,并触发某种操作。 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete) 语法: create trigger triggerName after/before insert/update/dele... 阅读全文
posted @ 2017-07-31 16:28 左闯 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 一,什么触发器 1,个人理解触发器,从字面来理解,一触即发的一个器,简称触发器(哈哈,个人理解),举个例子吧,好比天黑了,你开灯了,你看到东西了。你放炮仗,点燃了,一会就炸了。2,官方定义触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一 阅读全文
posted @ 2017-07-31 16:27 左闯 阅读(928) 评论(0) 推荐(0) 编辑
摘要: 由于数据库查询的及插入的操作 耗费的实际时间要耗费比redis 要多, 导致 多人查询时库存有,但是实际插入数据库时却超卖 redis 会有效的减少相关的延时,对于并发量相对较少的 可以一用 阅读全文
posted @ 2017-07-31 11:53 左闯 阅读(1052) 评论(0) 推荐(0) 编辑
摘要: 抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。 重点在于第二个问题 常规写法: 查询出对应商品的库存,看是否 阅读全文
posted @ 2017-07-31 11:46 左闯 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 对于商品抢购等并发场景下,可能会出现超卖的现象,这时就需要解决并发所带来的这些问题了 在PHP语言中并没有原生的提供并发的解决方案,因此就需要借助其他方式来实现并发控制。 方案一:使用文件锁排它锁 flock函数用于获取文件的锁,这个锁同时只能被一个线程获取到,其它没有获取到锁的线程要么阻塞,要么获 阅读全文
posted @ 2017-07-31 11:30 左闯 阅读(2016) 评论(0) 推荐(0) 编辑
摘要: 观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。 场景:一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新得逻辑增多之后,代码会变得难以维护.这种方式是耦合的,侵入式的,增加新的逻辑需要改变事件主题的 阅读全文
posted @ 2017-07-28 14:51 左闯 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 原创文章,转载请注明出处:http://www.cnblogs.com/hongfei/archive/2012/07/07/2580776.html 简单工厂模式: ①抽象基类:类中定义抽象一些方法,用以在子类中实现 ②继承自抽象基类的子类:实现基类中的抽象方法 ③工厂类:用以实例化对象 看完文章再回头来看下这张图,效果会比较好 1 采用封装方式 2 3 getMessag... 阅读全文
posted @ 2017-07-28 14:30 左闯 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 单例模式(职责模式): 简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务; 单例类: 1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化; 2、拥有一个保存类的实例的静态成员变量 3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例... 阅读全文
posted @ 2017-07-28 14:13 左闯 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 介绍 策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 封装:把行为用接口封装起来,我们可以把那些经常变化的部分,从当前的类中单独取出来,用接口进行单独的封装。 互相替换:我们封装好了接口,通过指定不同的接口实现类进行算法的变化。 思维导图 php策略模式-鸭子游戏 我来解释下这个思维导图的过程: 1.Joe做了一套相当成功的模拟鸭... 阅读全文
posted @ 2017-07-27 18:21 左闯 阅读(197) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页