联机交易流水表如何设计

以下业务场景, 有什么好的mysql方案
系统最繁忙的交易订单表, 每秒600笔交易, 每天大概2000-3000万笔交易。交易7*24, 不能停机。交易流水需要永久联机查询, 每笔交易流水绝大多数情况下在20秒就不再有任何更新写入操作。 但是部分(非常少)交易涉及到退货,在3个月内还存在更新的可能, 但是每笔交易流水三个月后都不会再有更新操作。 应该如何设计这个交易流水的存储方案?

有没有经验丰富的大牛可以分享下相关方案?

讨论数量: 6

你怕不是腾讯阿里的架构师来骗方案的吧,这个并发看着一般,但是数据量很恐怖啊,已经不是mysql的范畴了,没什么方案,加机器,分表,索引,限制查询范围,仅此而已

1个月前 评论
epiphyllum (楼主) 1个月前
pndx

Mark,等大佬,这问题看起来很好玩

1个月前 评论

既然是交流交流,那本菜鸟先来打头阵,也好抛砖引玉

方案初号机:基于日期的bigint流水号

流水号格式:

位置 1~2 3~10 10~19
说明 预留:可用于业务id,机器id等 日期 每日自增值
示例 10 20220705 000000001
实际使用范围 00~92 00000000~99991231 000000000~999999999

单人最大订单量9.99亿,可以用到9999年

1个月前 评论

找个时序数据库,分分钟的事

1个月前 评论

每天一张表 (Mysql两三千万没有太多压力 如果慢再细分一下也可以)

MYSQL保存最新4个月数据 每次查询最近4个月查询MYSQL

订单超过3个月的移动到表格储存 (www.aliyun.com/product/ots)

订单查询4个月以前的数据就从表格储存读

之所以保存4个月而不是三个月是因为查询第四个月的时候可能还没完全迁移到表格储存,所以MYSQL保留4个月数据

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!