文章插图
例如:电话账单就可以分成多个表:最近3个月的账单数据存在一个表 , 3个月前的历史账单存放到另一种表 , 超过一年的历史账单可以存储到单独的存储介质上 , 这种拆分是最常用的水平拆分方法 。
水平分割标准水平分割最重要的是找到分割的标准 , 不同的表应根据业务找出不同的标准
- 用户表可以根据用户的手机号段进行分割如user183、user150、user153、user189等 , 每个号段就是一张表
- 用户表也可以根据用户的id进行分割 , 加入分3张表user0,user1,user2 , 如果用户的id%3=0就查询user0表 , 如果用户的id%3=1就查询user1表
- 对于订单表可以按照订单的时间进行分表
- 客户端代理: 分片逻辑在应用端 , 封装在jar包中 , 通过修改或者封装JDBC层来实现 。当当网的 Sharding-JDBC 、阿里的TDDL是两种比较常用的实现 。
- 中间件代理: 在应用和数据中间加了一个代理层 。分片逻辑统一维护在中间件服务中 。我们现在谈的 Mycat、360的Atlas、网易的DDB等等都是这种架构的实现 。
【数据库分表】
推荐阅读
- 一篇文章让你了解Linux进程调度器
- js中同步和异步编程
- 什么是真正的架构设计?十年Java经验让我总结出了这些
- AI的下一站
- 一个男人陷入恋爱的症状 恋爱时人会变傻吗
- 通信行程卡第二天几点更新 行程卡是一天一更新吗
- 考试|研究生笔试第一,还是上岸失败,导师揭露其内幕
- 一加8 pro和一加8区别 一加8还是一加8pro
- 冻裂的鸡蛋怎么处理
- 香菇可以冷冻吗
