500miles
这样子可能轻松生成上千订单
依赖
mysql count
订单量, 在并发情况下 是不可靠的.除非你加锁, 针对你这种情况, 需要加表级别锁, 还得是
WRITE LOCK
, 将会引起性能上的极大隐患, 不推荐.一个简单易行 比较讨巧的办法 是做一个原子性的自增计数, 来帮你控制10个订单的量.
你可以用
mysql
的自增id
特性完成, 他内部维护有轻量的自增锁.具体做法是: 新建一张表A, 只要一个自增主键即可; 每次请求 都先插入表A一条空数据, 拿到一个自增id, 判断是否大于10即可;
针对你这个情况, 应该足以应付了.
当然 如果使用内存db, 比如
redis memcache
等, 来实现一个自增计数, 或者一个队列, 就更高效了@bryson synchronized 印象中, 这个东西好像是java的吧
- 500miles 2015-11-10 已签到连续签到72天,获得了20个金钱
- 500miles 回答了问题 同一時間新增資料 無法當下抓到新增的筆數
这样子可能轻松生成上千订单
依赖
mysql count
订单量, 在并发情况下 是不可靠的.除非你加锁, 针对你这种情况, 需要加表级别锁, 还得是
WRITE LOCK
, 将会引起性能上的极大隐患, 不推荐.一个简单易行 比较讨巧的办法 是做一个原子性的自增计数, 来帮你控制10个订单的量.
你可以用
mysql
的自增id
特性完成, 他内部维护有轻量的自增锁.具体做法是: 新建一张表A, 只要一个自增主键即可; 每次请求 都先插入表A一条空数据, 拿到一个自增id, 判断是否大于10即可;
针对你这个情况, 应该足以应付了.
当然 如果使用内存db, 比如
redis memcache
等, 来实现一个自增计数, 或者一个队列, 就更高效了 @q573927428 你把
'fixedVerifyCode' => substr(md5(time()),11,4),
去掉好了, 不用重写, 你这个地方没有重写的必要- 500miles 回答了问题 验证码输入的是正确的,但是提示验证码错误
- 500miles 回答了问题 如何在一个页面中加载另一个页面
你经常在
controller
用的$this->render(...);
;其实 就是调取
View
里面 的render
方法;因此 你可以直接在页面内
$this->render(...)
和在
controller
里一样 狂荡不羁 潇洒自在 ... - 500miles 2015-11-09 已签到连续签到71天,获得了20个金钱
- 500miles 2015-11-08 已签到连续签到70天,获得了20个金钱