【缘起】
用户中心是几乎每一个公司必备的基础服务,用户注册、登录、信息查询与修改都离不开用户中心。
当数据量越来越大时,需要多用户中心进行水平切分。最常见的水平切分方式,按照uid取模分库:

通过uid取模,将数据分布到多个数据库实例上去,提高服务实例个数,降低单库数据量,以达到扩容的目的。
水平切分之后:

uid属性上的查询可以直接路由到库,如上图,假设访问uid=124的数据,取模后能够直接定位db-user1。
对于uname上的查询,就不能这么幸运了:

uname上的查询,如上图,假设访问uname=shenjian的数据,由于不知道数据落在哪个库上,往往需要遍历所有库【扫全库法】,当分库数量多起来,性能会显著降低。
用uid分库,如何高效实现上的查询,是本文将要讨论的问题。
【索引表法】
思路:uid能直接定位到库,uname不能直接定位到
继续阅读与本文标签相同的文章
上一篇 :
到底什么时候该使用MQ?
下一篇 :
TCP接入层的负载均衡、高可用、扩展性架构
-
典型数据库架构设计与实践 | 架构师之路
2026-05-20栏目: 教程
-
阿里云最新优惠活动来了:低至2折起限量抢爆款云服务器(最新)
2026-05-20栏目: 教程
-
mysql-proxy数据库中间件架构 | 架构师之路
2026-05-20栏目: 教程
-
一分钟了解四层/七层反向代理 | 架构师之路
2026-05-20栏目: 教程
-
DNS在架构设计中的巧用
2026-05-20栏目: 教程
