支付业务订单系统分库分表
   发布时间:2025-11-04 21:56:28   作者:玩站小弟   
 我要评论
支付业务订单系统分库分表支付系统中订单业务最主要的查询维度有四个:订单、用户、商家、运营。从查询数据库字段的角度来讲,B2B、B2C等模式:商户编号+商户订单号查询,商户编号+商户订单号属于唯一性约束
。
						支付业务订单系统分库分表
支付系统中订单业务最主要的支付查询维度有四个:订单、用户、业务商家、订单运营。系统
从查询数据库字段的分库分表角度来讲,B2B、支付B2C等模式:
商户编号+商户订单号查询,业务商户编号+商户订单号属于唯一性约束。订单商户编号查询,系统例如商户后台查询,分库分表运营后台查询。支付系统订单号查询,业务订单系统自身生成,订单全局唯一性约束。系统用户编号查询,分库分表例如电商业务,查询自己的订单系统订单号+用户编号查询,例如用户精准查询个人订单无条件查询,例如运营后台查询
设计到分库分表字段的核心查询业务:
商户编号+商户订单号查询,商户编号+商户订单号属于唯一性约束。商户编号查询,例如商户后台查询,运营后台查询。系统订单号查询,订单系统自身生成,全局唯一性约束。云服务器一种分库分表思路:
系统订单号生成规则:通过将分库分表的数据写入到生成规则内,这样可以进行定位位置。
商户编号规则:取商户编号后4位做分片键,进行hash取模。

建议把订单数据冗余一份,分买家库和卖家库,数据库通过消息中间件或者其他同步工具进行异步更新,这种场景最好将买家库的分片键(截取买家ID)和卖家库(截取卖家ID)的分片键都包含在订单ID中,这样卖家相关的业务查询订单明细时,可以直接走卖家库。
综合分析如果是 2C 和 2B 业务综合存在,建议进行业务拆分,没有必要把数据全部放在同一个业务逻辑内。
订单数据有个比较特殊的点,随着时间的推进,大量的数据会变成冷数据,使用率会降低。还有一种根据创建时间来进行分表是一个不错的选择。所以分库分表其实没有统一的云服务器提供商方案,要根据业务进行详细的设计。
例如根据创建时间来进行分表:
时间差,是不是要冗余查询,因为支付订单的时效性来讲,是不是可以默认查询2天的数据。支付订单是存在有效期的,比如订单过期,所以是不是可以设置规则,接口只能查询当日的数据。商户后台可以通过一些数据同步手段,例如 canal 同步到 es 等等手段。总结:实际场景实际分析,没有统一的方案。
相关文章
- 摘要:随着科技的发展,人们对计算机性能的要求越来越高,但长时间使用后电脑卡顿、运行缓慢成为了常见问题。而深度U启大师作为一款专业的系统优化工具,可以有效解决这一问题。本文将详细介绍深度U...2025-11-04
 
对于vue来说,组件是非常常见的,有很多平台都封装了了属于自己一套的组件,如element ui、we ui等等。同时组件之间的消息传递也是非常重要的,下面是我对组件之间消息传递的各种方式的总结,共有2025-11-04
本文基于Objective-C对象的消息传递机制,详细分析OC对 objc_msgSend 的尾调用优化方式。1. 什么是尾调用?尾调用( TailCall):某个函数的***一步仅仅只是调用了一个函2025-11-04
在你的游戏开发过程中有了 PyGame Zero,和枯燥的模板说再见吧。Python 是一个很好的入门级编程语言。并且,游戏是一个很好的入门项目:它们是可视化的,自驱动的,并且可以很愉快的与朋友和家人2025-11-04- 摘要:启动盘是一种非常有用的工具,可以帮助我们解决电脑系统崩溃、病毒感染等问题。然而,很多人并不知道如何制作启动盘,因此本文将为大家详细介绍以启动盘复制为主题的完整教程。选择适合...2025-11-04
 
工欲善其事必先利其器的道理相信大家都懂。而作为经常要和各大网站做拉锯战的爬虫工程师们,则更需要利用利用好身边的一切法器,以便更快的攻破对方防线。今天我就以日常爬虫流程,给大家介绍十款工具,相信大家掌握2025-11-04

最新评论