复制代码
为懒人提供无限可能,生命不息,code不止
人类感性的情绪,让我们知难行难
首页
前端
后台
数据库
运维
资源下载
实用工具
登录
注册
ERP
【原创】记录一次零售ERP,档案模块分库分表过程
作者: whooyun
发表于:
2024-03-29 17:21
记录一次零售ERP,商品档案模块分库分表过程
场景:公司预估使用ERP SaaS服务的企业为10万左右,因此对数据库进行了分库分表设计
方案:直接使用企业ID取模32进行分表策略,未进行分库
问题:
逻辑描述:商品档案归属于企业,每个门店/机构需要从商品档案同步成机构商品
1、比如机构商品同步任务表因为分表后,以前只需一张表,现在是32张,分表后严重影响了机构商品同步性能
2、每次定时扫描任务表需要扫描32张
优化方案:
1、可以不对机构商品同步任务表(acv_org_gds_sync)进行分表,因为商品档案只需要同步一次,就算数据量过大,可以一天清理一次或者归档(任务数据不重要)
2、如果一定要分表,可以将机构商品同步任务表衍生出一张汇总表,不能纯粹为了分表而分表,不考虑性能,遍历32张表
3、不使用定时任务同步方案,可以直接通过MQ消息队列模式,直接将需要同步的商品ID发送到MQ服务队列,由消费者去同步机构商品,既能降低业务的复杂度,又能提供机构商品同步的性能
需求优化:
1、使用黑名单模式,每个门店默认使用企业的商品档案,如果某个门店不卖某商品,则将某商品加入黑名单即可
设计:
1、机构商品价格表、机构商品黑名单表
2、机构商品自定义表如果只卖某几个单品,则可以将企业商品档案的全部同步过来
3、查看机构商品列表或者机构商品详情时,则通过企业商品档案表关联机构商品自定义表