数据库 表中只有两个 id 字段的优化问题

liuminhan · 2019年07月04日 · 最后由 early 回复于 2019年07月07日 · 576 次阅读

最近在做一个功能, 供货商给他的客户去绑定货品。用一张表去存储客户绑货这个关系,用到了两个字段customer_id, goods_id, 如果一个客户绑定了500个货品,就会产生500条记录。这样到了1000个供货商的时候,如果每个供货商又有500个客户,每个客户绑定500个货品,那么就会产生1000 * 500 * 500 = 250,000,000(2.5亿)条记录,这种情况下是不是应该把goods_id 序列化成一个数组字段会更好?

共收到 5 条回复

这种不会造成多大的影响吧,都是ID,数据存储量也不会大,查询也不会耗时太严重 按照你的方式,某天加个需要:查某个商品绑定的客户,岂不是疯掉了

robertyu 回复

确实也有这个需求,查商品绑定的客户

这不就是普通的的多对多关联嘛 等你有1000个供货商再去考虑优化吧 空谈意义不大

hooopo 回复

这个倒也是,做功能的时候,发现了这么个问题,一个供货商的绑货功能,做数据导入的时候,帮他把所有门店都绑上货,一下子就弄出来了600 * 700 = 42万条数据,顿时对设计的这个表有所怀疑,都不确定这么弄对不对了

这个不存在优化问题,表结构已经很简洁了,也许可以考虑如何缓存供货关系,不要一直查DB。等数据量大到一定程度,你应该会选择按照[供货商ID]分库分表了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册