poembre 最近的时间轴更新
poembre

poembre

V2EX 第 211850 号会员,加入于 2017-01-22 17:38:36 +08:00
想问一个 mysql 高频实时交易的表设计
MySQL  •  poembre  •  97 天前  •  最后回复来自 poembre
16
联通营销客服 到底是什么样的存在?
分享发现  •  poembre  •  2022-02-14 11:12:13 AM  •  最后回复来自 goodryb
54
被 bug 环绕的一天
PHP  •  poembre  •  2021-02-07 17:50:40 PM  •  最后回复来自 poembre
6
请教下,双十一哪家 ECS 云服务器活动更便宜 .
云计算  •  poembre  •  2020-11-12 13:42:29 PM  •  最后回复来自 beautwill
25
poembre 最近回复了
90 天前
回复了 csulyb 创建的主题 PHP PHPer 现在写后台业务 实现高并发只有 swoole 吗
绝大多数 互联网应用场景 并发能力 受限于数据源。 编程语言又能慢到哪里去呢。 如果谁家应用只输出 hello world 那当我没说
97 天前
回复了 poembre 创建的主题 MySQL 想问一个 mysql 高频实时交易的表设计
@bianhui 大佬说的对. 什么时候能讨论一下 “真的有一天 真的到了这种程度” 的方案
97 天前
回复了 poembre 创建的主题 MySQL 想问一个 mysql 高频实时交易的表设计
@xuanbg 赞同 或者写双份。 一段时间后替换掉大表 。
97 天前
回复了 poembre 创建的主题 MySQL 想问一个 mysql 高频实时交易的表设计
@iosyyy 时间会涉及到 跨月 跨年 等问题. 刚好这里又是列表形式
97 天前
回复了 poembre 创建的主题 MySQL 想问一个 mysql 高频实时交易的表设计
@mourner 有个问题,因为涉及到玩家的道具物品数量,如果放入 redis 没法用事物 来保证一致性。 比如 mysql 操作成功 Redis 失败 等杠精问题 ... 。 然后 DNF 那个 将物品放入拍卖行 如果一直没人买, 到期会自动退回。 这个好像避免不了更新操作, 即使放入 Elasticsearch 也要被拎出来更新 。
97 天前
回复了 poembre 创建的主题 MySQL 想问一个 mysql 高频实时交易的表设计
@21231sv 目前是 golang
97 天前
回复了 poembre 创建的主题 MySQL 想问一个 mysql 高频实时交易的表设计
@poembre 但确实会越来越大, 比如张三 有 10000 把太刀 他可以每次上架 1 把 。 被人购买后 有 1W 条 库存为 0 的数据
97 天前
回复了 poembre 创建的主题 MySQL 想问一个 mysql 高频实时交易的表设计
@kxct 但确实会越来越大, 比如张三 有 1000 把太刀 他可以每次上架 1 把 。 被人购买后 有 1W 条 库存为 0 的数据

分表也可以 分表条件 用什么字段, 这里最佳选择是 道具 ID 取余或者其他 ; 增加了点工作量 效果 应该还不错 ; 配合 @mourner 大佬的改交互方案
97 天前
回复了 poembre 创建的主题 MySQL 想问一个 mysql 高频实时交易的表设计
@mourner 大佬说的在理,改交互方式;



总结一下就是 :

dnf 的交易界面是直接搜索道具名称, 列表展示的字段是 :

卖家昵称 卖的物品道具名称 数量 价格
张三 小太刀 1000 $34000

--------------------------更改为 ------------------------------------------

改为 直接搜索道具名称 列表是道具总表 items 表:

道具 id 道具名称 类型 属性 等级
58 小太刀 武器 +30 攻击 1


然后点击 小太刀 这行后; 弹窗列表展示谁在售卖 通过 id 58 去 trade_info 表查询 列表展示的字段是 :

卖家昵称 卖的物品道具名称 数量 价格
张三 小太刀 1000 $34000




大佬的方案极好 解决了查询问题, 省去了一层 表的关联查询。
比如之前可能是 select * from items as A left join trade_info as B ON A.id = B.item_id WHERE A.item_name like "%小太刀%"


更改后是:
select * from items WHERE item_name like "%小太刀%"
select * from trade_info WHERE item_id = 58
更加方便加缓存了


另外我还是想问 :
关于 交易信息表(trade_info), 某物品道具已经被买空,库存字段为 0; 是否需要从交易信息表 删除; 否则 trade_info 表数据非常大
比较有气势的一句 : 辞去泉台招旧部,旌旗十万斩阎罗 陈毅将军 梅岭三章
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5737 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 02:26 · PVG 10:26 · LAX 18:26 · JFK 21:26
Developed with CodeLauncher
♥ Do have faith in what you're doing.