首页
开源软件
问答
博客
翻译
资讯
Gitee
众包
活动
专区
源创会
高手问答
开源访谈
周刊
公司开源导航页
登录
注册
首页
资讯
动弹
专区
问答
GOTC2023
活动
开源活动
开源创新大赛
软件库
Tool
博客
Gitee
首页
资讯
动弹
专区
问答
GOTC2023
活动
开源活动
开源创新大赛
软件库
Tool
博客
Gitee
OSCHINA 小程序 ——
关注技术领域的头条文章
聚合全网技术文章,根据你的阅读喜好进行个性推荐
登录
注册
一种自平衡解决数据倾斜的分表方法
作者:京东零售 梁强 1、背景 这篇主要描述了B端令牌系统应用数据分表解决业务数据量增大,且存在的数据倾斜问题,主要面向的场景是一对多数据倾斜问题 1)B令牌的业务背景 先简述一下B令牌的业务背景,B令牌系统...
作者:
京东云开发者
一种自平衡解决数据倾斜的分表方法
分享
复制链接
README badge(
)
社交分享
微信
QQ
微博
f
fightingAllTheDay
04/06 15:10
运行一段时间后,表 b2b_token_user_1 数据量已经增长到了 1200 万,超过了 1000 万的水位,这时候在创建令牌则将该表移除,在此进行 Hash 后取模得到 1,则当前分到的表就是 b2b_token_user_2。
----------------------------------------------------------------------------------------------------------------
这样做,分页查询(问题 b)不是就不方便了?
回复
举报
京东云开发者
04/06 16:52
分表序号实际是保存在数据库中的,虽然hash值是1,但保存的序号实际是表名后面的数字2,所以分表序号是2,实际查询时从数据库或者缓存中得到分表序号2,然后再从b2b_token_user_2中分页查询数据即可。本质上就是把分表算法和路由策略进行了解耦,实际路由的时候是用的创建时候记录下来的分表号。
回复
举报
我是无证程序员
03/30 11:46
既然你都在token表记录分表号了,那么就不需要哈希了,每次新建token都把当前数据量最小的user表的分表号给token就可以。这个记录放分表号的方案适合小表分大表的场景
回复
举报
回复 @
{{ emoji.type }}
{{emojiItem.symbol}}
评论用户
f
推荐博客
ChatGPT教我用200行代码写一个简版Vue框架 - OpenTiny
Kagol
·
昨天 10:40
0 评论
Python + HDF5 因子计算与 DolphinDB 一体化因子计算方案对比
DolphinDB智臾科技
·
前天 16:50
0 评论
面向多告警源,如何构建统一告警管理体系?
阿里云云原生
·
前天 16:21
0 评论
OpenELB 在 CVTE 的最佳实践
KubeSphere
·
前天 16:16
0 评论
实例讲解Flink 流处理程序编程模型
华为云开发者联盟
·
前天 14:27
0 评论
为什么 Serverless 能提升资源利用率?
阿里云云原生
·
前天 11:58
0 评论
微服务架构中的数据一致性:解决方案与实践 | 得物技术
得物技术
·
前天 11:29
0 评论
RALB负载均衡算法的应用 | 京东云技术团队
京东云开发者
·
前天 10:25
2 评论
分布式数据库 Join 查询设计与实现浅析 | 京东云技术团队
京东云开发者
·
前天 09:42
0 评论
定时任务原理方案综述 | 京东云技术团队
京东云开发者
·
前天 09:31
0 评论
删除一条评论
评论删除后,数据将无法恢复
取消
确定
©OSCHINA(OSChina.NET)
工信部
开源软件推进联盟
指定官方社区
社区规范
深圳市奥思网络科技有限公司版权所有
粤ICP备12009483号
顶部
----------------------------------------------------------------------------------------------------------------
这样做,分页查询(问题 b)不是就不方便了?