Heim  >  Artikel  >  Backend-Entwicklung  >  订单表是根据userid分表还是orderid分表

订单表是根据userid分表还是orderid分表

WBOY
WBOYOriginal
2016-10-17 09:30:051745Durchsuche

订单表是根据userid分表还是orderid分表

回复内容:

订单表是根据userid分表还是orderid分表

1个user可以有多个订单,根据订单id分吧

uiserid和orderid是一对多的关系,所以,订单表的主键是orderid,外键是userid

用orderid分表的好处是可以做到每张表的大小差异不大,比如按照时间来分或者order数量达到一个值就新建表,坏处是查询的时候往往是以userid为检索条件的,所以会出现非常多的union操作。
用userid的话情况就相反,表的大小无法恒定下来,会随着时间不断增长,但是好处是查询都是单表,会很快。
所以个人观点的话:如果是不用nosql来做缓存的情况下,建议用userid分表。如果追求性能可以用memcache来做缓存,这样即使是用orderid分表,由于第二次查询的时候会直接读取缓存,速度也会很快。对于经常查看订单的用户会很友好。

用orderid分表

  1. orderid 好存,数据库负担也比较一致。但是数据聚合比较难。

  2. userid 好聚合。但是会有热点分布问题,造成数据表大小不一致。

自己抉择

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn