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

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

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

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

robertyu 回复

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

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

hooopo 回复

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

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

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