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

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

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

方案一:

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

账号hash
a,bc,11
a12

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

方案二:

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

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

方案三:

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

http://www.lryc.cn/news/323404.html

相关文章:

  • vue学习日记14:工程化开发脚手架Vue CLI
  • java Flink(四十三)Flink Interval Join源码解析以及简单实例
  • JsonUtility.ToJson 和UnityWebRequest 踩过的坑记录
  • 面试算法-69-三角形最小路径和
  • 流畅的 Python 第二版(GPT 重译)(九)
  • 单片机学到什么程度才可以去工作?
  • 内网穿透方案
  • WordPress菜单函数wp_nav_menu各参数
  • 类于对象(上)--- 类的定义、访问限定符、计算类和对象的大小、this指针
  • 提升交付效率:Booking.com 金融技术团队的成功实践
  • 【消息队列开发】 实现ConsumerManager类——消费消息的核心逻辑
  • 【Three.js】使用精灵图Sprite创建面朝相机的文本标注
  • C++中的类模板
  • 【每日一题】好子数组的最大分数
  • Vue2(七):超详细vue开发环境搭建(win7),nodejs下载与安装,安装淘宝镜像(报错已解决),配置脚手架
  • 【Web】记录CISCN 2021 总决赛 ezj4va题目复现——AspectJWeaver
  • 视频技术1:使用ABLMediaServer推流rtsp
  • HTML5+CSS3+JS小实例:创意罗盘时钟
  • 设计数据库之内部模式:SQL基本操作
  • Git浅谈配置文件和免密登录
  • 【好玩的经典游戏】Docker环境下部署RPG网页小游戏
  • 前端逻辑错误或UI崩溃解决问题
  • python爬取QQ音乐评论信息
  • Unity构建详解(1)——SBP介绍
  • 贪心算法(算法竞赛、蓝桥杯)--奶牛晒衣服
  • Redis列表:高效消息通信与实时数据处理的利器
  • Redis中的缓存雪崩
  • 使用远程工具连接Mysql
  • 2024不起眼的“致富”野路子,不想打工了,做做这些暴利创业项目。2024个人创业做什么项目好;最适合白手起家的创业项目
  • 从后端获取文件数据并导出