数据分表小结

先描述下现有系统:现有系统的设计要求是每日订单量为30W,所以对数据表必须要拆分来提高读写效率,当更加得益于Ali牛逼的TDDL数据库中间件和面目全非的MySQL。

分布式数据库介绍
http://www.iteye.com/news/32077

拆分的原则

  • 分表的规则,需要使用贯穿整个业务主线的ID,如订单号等。
  • 分表ID需要贯穿整个业务的主线,如何订单相关的表,如果订单在第0张表,则相关表也都在第0张表
    *100保证
 public long generateSellOrderId(long orderId){
        long temp = sequence.nextValue();
        return temp*100+TddlRouteUtil.getTableIndexByOrderId(orderId);
    }

基础知识
表的拆分需要根据一定的规则,如拆分为64张表,业务ID为100,则ID为100的数据存入100%64=36 第36张表中。

表连接查询?

这个想都不要想了,想象一下查询所有的表来实现条件查询会有多么的恐怖!
1)代码逻辑中的操作所有的都是单表操作,业务逻辑在数据查询出来后处理。
2)如果我想使用其它的非分表规则属性(意味着我不知道到哪张表中查询数据),则需要依靠建立外部索引,如aliyun 的OpenSearch服务等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值