如何把订单表均匀的分表?在线坐等。。。

马迪奥1 发布于 2016/02/25 18:39
阅读 1K+
收藏 1

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

如题:如何均匀的把订单数据均匀的拆分到各个表中。

我开始的想法是根据用户id 哈希来分表,这样可以保证一个用户的所有订单都在一个表中,但是会出现一些问题。

问题1:每个表的数据会存在一定差异。

问题2:如果商户要查询商品的所有订单,用以上的方法还是会去扫描所有的表。

问:应该根据什么字段和规则来进行订单表的分表来解决上面两个问题?

以下是问题补充:

@马迪奥1:找到办法了,淘宝在线交易系统设计:http://www.docin.com/p-410858809.html (2016/02/25 23:10)
加载中
0
阳光test
阳光test
分成买家库和卖家库,因为买家和卖家关心的维度不一样。
0
马迪奥1
马迪奥1

引用来自“阳光test”的评论

分成买家库和卖家库,因为买家和卖家关心的维度不一样。
这样订单就重复了
阳光test
阳光test
亲,不是那个意思,同一个订单,买家卖家两个库。
0
Moses_Fu
Moses_Fu

你想分表。要垂直分表或者是水平分表?

垂直分表:拆分订单的属性,把数据量大的属性拆分出去。具体根据你的业务分析和订单属性来看,比如:你的业务需要先从订单列表跳转到订单详情,就可以将订单列表涉及到的属性单独建表,订单详情的属性对应补充建表。这样可以快速查询订单列表的简单信息。

水平分表:根据一定的规则分表,防止单表数据量过大。可以根据表的数据量,如:达到1M条数据即分表;可以根据日期分表,比如:根据月份分表,每月生成新订单表。

(亦可混合分表,将上诉两总分表方式一起使用,但实现较复杂。)


你说要均匀分表,那就选择水平根据数据量分表。

你说用户要查找订单?那就建索引,定位表名和表内位置。

你说商户要查找订单?那就建索引,定位表名和表内位置。

分表必须有索引。

0
Raveh
Raveh
partition by hash(orderid)
0
toozyxia
toozyxia
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
小99
小99
可以根据订单尾号后1位或者2位进行分表
0
老菜鸟2021
老菜鸟2021
订单主表和字表啊,主表存通用信息,列表存详细信息,主表和字表的主键id一样
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部