V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  realpg  ›  全部回复第 446 页 / 共 502 页
回复总数  10029
1 ... 442  443  444  445  446  447  448  449  450  451 ... 502  
2016 年 2 月 1 日
回复了 sheldondai 创建的主题 MySQL mysql update 库存问题
如果纯在 mysql 的场景下操作,不用内存 key-value 系统,我更倾向于用另外一种模型处理这种竞争抢购的逻辑。

“需要先 select ,然后 insert ,最后 update -1 。最后这个-1 操作是不能出现负数的”

我可以分享一下我的思路,以及我的做法。

首先,楼主以及这个文章都提到超售的问题,如果你的系统设计上能出现超售,那说明你的逻辑太差。就这种 select insert update-1 的模型,在抢购的瞬间是怎么操作的呢?我们分析一下:

首先 用户 submit_order, 先去 select 库存,判断有,然后 insert 一个 order 表数据,然后 update 库存减 1

在 MYSQL 并发非常高的瞬间,这三部操作,都可能出现大坑,只要三步中一个操作被锁坑了,整体就坑了。

然后我们再抽象:假设抢购 50000 件商品

抢购前,库存表一条记录 值 50000 ,订单表 0 条记录
抢购后,订单表 50000 条记录,库存表 1 条记录,值 0

在抢购过程中(假设非常火, 5 秒钟抢完)
中间 select 次数远大于 50000 (抢购失败的也得查询库存), update50000 次库存表-1 , insert50000 个订单表 这么多查询吧。这三步是一个顺序逻辑,任何一步出问题整个操作都失败。

我的抢购系统,绝对不会设计的!

我有 50000 件商品,我在抢购开始前一个小时到抢购前 5 分钟, 55 分钟的时间里,写入订单表 50000 条记录。其中 orders 表的 uid 做 unique 约束。 UID 使用-1~-50000 预先填写好
我有 55 分钟时间插入 50000 条记录,不用 5 秒钟, MYSQL 无负载无压力

开始抢购,所有人就开放一个接口,拼命地往数据库里提交一个查询
update ignore `orders` set uid = '你的 UID' where uid<0 and item=3 limit 1
不用等执行结果 完全非阻塞的只接受一个指令 就行了

整个抢购过程,就是一群人发一个查询往里去,等管理端发现 50000 个记录确认都有主了,抢购结束标志设置好,关闭抢购接口,完成抢购。大家可以访问我的订单看抢购结果了。
2016 年 2 月 1 日
回复了 isb 创建的主题 PHP php 中{}括号的正确书写方法是跟方法名同一行还是下一行?
按 PSR 规范貌似要求下一行

但是我烦死新建一行了……都是同行
2016 年 2 月 1 日
回复了 zhangyifei216 创建的主题 Linux 请问我这是得了 linux 病了吗?
V2EX 喷子太多了

人家并没说 LINUX 好, WINDOWS 不好吧,人家只是想从事 linux 相关工作,这都不行?
我一直觉得网站下面写那个 copyright 的东西 就是装 X 用的
PHPer ,个人用后一种,最主要原因是省一个空行,一屏幕能多显示出很多代码。

但是 PSR 规范要求前一种,十分搞不懂连特么括号怎么写都规定……
2016 年 1 月 30 日
回复了 lhbc 创建的主题 Android 请问各位 Android 工程师,有没有现成的 apk 编译 OS
现在啥情况不知道,反正一年前我有这需求时候,下载个 windows 傻瓜包就行了……
2016 年 1 月 28 日
回复了 Evnton 创建的主题 GitHub Github 不能正常打开,有谁知道是怎么回事吗?
美国加州,美国加州最大的同性交友俱乐部 GitHub 倒闭啦!王八蛋老板烧服务器,欠下三点五个亿,带着他的小姨子麦克布克跑啦!我们没有办法,拿着服务器上的私人版本库代码卖钱。原价两千万,三千万的大公司私有代码,现在只要五百块,五百块啊!
2016 年 1 月 27 日
回复了 linar 创建的主题 NGINX nginx 部署 thinkphp3.2.3 遇到的问题
我觉得对于楼主来说还是回归 apache 能省事一些……
@plus55 @cdnzz
在 V2EX 装傻自问自答发广告死全家
2016 年 1 月 26 日
回复了 keeley 创建的主题 Linux 服务器被挂马怎么查询文件变动
为什么有写权限的目录里面同时有执行权限呢?
@herozzm
电源去万能的淘宝有一家专卖品牌服务器电源的(垃圾佬们都知道,避免广告就不提了),很多人都买这玩意当台式机 /工作站电源用……

硬盘,一般买这种机器都是不带硬盘的套餐,都是准系统,没有硬盘的。
2016 年 1 月 25 日
回复了 weuiyseui 创建的主题 宽带症候群 免费使用联通骨干网 CDN,速度杠杠
@erevus 换 IP 么

http://120.52.72.21/120.52.72.22/120.52.72.23/120.52.72.24/120.52.72.25/120.52.72.26/120.52.72.27/120.52.72.28/120.52.72.29/120.52.72.30/120.52.72.31/120.52.72.32/120.52.72.33/120.52.72.34/120.52.72.35/120.52.72.36/120.52.72.37/120.52.72.38/120.52.72.39/41.media.tumblr.com/5cb6715c800c5b00969f33c162b317d1/tumblr_nzjh7dPKcD1ssbwqro1_540.png
2016 年 1 月 25 日
回复了 hacked 创建的主题 宽带症候群 什么情况,全部国外 ip 都访问不了
光纤是什么运营商……
2016 年 1 月 25 日
回复了 facat 创建的主题 宽带症候群 家庭布网线应该用 6 类线还是超 6 类线?
质量好点的超五类线足够,除非你有单根线走超过 30 米的长度。
AMP 请认准二手东,外面满地假线。
不过现在 AMP 的六类也卖跟以前超五类差不多的价格了。
1 ... 442  443  444  445  446  447  448  449  450  451 ... 502  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3417 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 5476ms · UTC 00:50 · PVG 08:50 · LAX 16:50 · JFK 19:50
♥ Do have faith in what you're doing.