当前位置: 首页 > news >正文

分库分表场景下多维查询解决方案(用户+商户)

        在采用分库分表设计时,通过一个PartitionKey根据散列策略将数据分散到不同的库表中,从而有效降低海量数据下C端访问数据库的压力。这种方式可以缓解单一数据库的压力,提升了吞吐量,但同时也带来了新的问题。对于B端商户而言,如何查看这些数据呢?由于数据被散列到不同的库表中,想要查询它们就需要全库表路由查询,这样分库分表将无法带来优势。例如,生成的短链码散列到不同的数据库抵御了海量消费者的访问压力,但在业务层面上,商家无法查询到自己旗下生成的所有短链码。我们对这个问题进行了进一步的分析,寻求解决方案。

方案一:

        字段解析配置。定义hash对应的库表策略关系,每次生成库表位时,根据商家的唯一标识进行hash,找到固定的库表位,然后将短链写入该库表中。当商家查询时,同样根据商家的唯一标识进行hash,找到可能在的库表,采用笛卡尔积方式将数据查出,此种方式不触发全库表路由。

账号hash
a,bc,11
a12

        缺点:随不触发全库表的路由,但所涉及库表都会进行查询,给所涉及的库表造成访问压力;

方案二:

        Nosql方案。可利用canl-server监听数据库的变动,kafka缓冲,冗余到es中。

        缺点:需要实时维护管理缓存数据库的数据。

方案三:

        冗余双写方案。拆分买家库和卖家库:1)买家库,按照用户的id来分库分表;2)卖家库,按照卖家的id来分库分表。下订单的时候写两份数据,在买家库和卖家库各写一份。

相关文章:

  • 数字人解决方案— SadTalker语音驱动图像生成视频原理与源码部署
  • MySQL连接详解(内外连接,左右连接)
  • 全球首位AI程序员诞生,会抢走程序员的饭碗吗?
  • C# 读取指定文件夹
  • 【PMP】每日一练2
  • 前端项目构建过程中涉及低代码部分思考
  • 2024年3月22蚂蚁新村今日答案:以下哪一项是陕西省的非遗美食?
  • 大数据-基础架构设施演进的过程
  • Android学习进阶
  • Mapper.xml映射文件
  • 【笔记】Python学习记录
  • Windows 11 安装 Scoop
  • Mysql数据库:索引管理
  • 【算法与数据结构】二叉树(前中后)序遍历
  • 自营、入驻商城小程序开发
  • 《Java编程思想》读书笔记-对象导论
  • Consul Config 使用Git做版本控制的实现
  • crontab执行失败的多种原因
  • C学习-枚举(九)
  • Docker入门(二) - Dockerfile
  • git 常用命令
  • JavaScript设计模式与开发实践系列之策略模式
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Mybatis初体验
  • Python - 闭包Closure
  • SpiderData 2019年2月23日 DApp数据排行榜
  • 从重复到重用
  • 回顾2016
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 蓝海存储开关机注意事项总结
  • 你不可错过的前端面试题(一)
  • 使用common-codec进行md5加密
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 一个JAVA程序员成长之路分享
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​2020 年大前端技术趋势解读
  • ​用户画像从0到100的构建思路
  • #HarmonyOS:Web组件的使用
  • $().each和$.each的区别
  • (03)光刻——半导体电路的绘制
  • (9)目标检测_SSD的原理
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (day6) 319. 灯泡开关
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (三)Honghu Cloud云架构一定时调度平台
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (四)Controller接口控制器详解(三)
  • (转)http协议
  • .apk文件,IIS不支持下载解决
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core 中插件式开发实现
  • .NET 发展历程