[数据库设计]一张多字段的表,分为两个关联表,是否合理?对性能是否有影响?

2016-01-24 14:35:23 +08:00
 blue7wings
我把一张 user 表分为以下两个表,这么做合理嘛?




4260 次点击
所在节点    问与答
19 条回复
decken
2016-01-24 14:52:26 +08:00
看场景?方便还是性能
blue7wings
2016-01-24 14:58:14 +08:00
@decken 我原先建了一张 user 表,发现字段不够用了,就想能不能加一张表,而不是加字段,就想到了这个问题。
LINAICAI
2016-01-24 15:10:15 +08:00
如果是我, addition 表用 id 做主健, user_id 外健。
blue7wings
2016-01-24 15:13:15 +08:00
@LINAICAI 关联表有没有主键貌似没啥关系吧。
TangMonk
2016-01-24 15:13:22 +08:00
用 json 存储
LINAICAI
2016-01-24 15:14:04 +08:00
info 字段如果不常用和很多数据,我会拆开来,但如果就这样这么点字段,感觉性能差不不懂的
decken
2016-01-24 15:30:49 +08:00
@blue7wings 可以,最少改动最好了。量少无需太关注性能
blue7wings
2016-01-24 15:38:31 +08:00
@LINAICAI
@decken 谢谢两位。
blue7wings
2016-01-24 15:38:42 +08:00
@TangMonk 用 mongo?
cevincheung
2016-01-24 15:47:41 +08:00
@blue7wings
postgresql jsonb
fredcc
2016-01-24 16:56:47 +08:00
如果生命周期中用户量只有十几万无所谓,如果是百万级别,还是好好考虑,联合查询稍微写得差点就瘫了
TangMonk
2016-01-24 17:20:27 +08:00
@blue7wings postgres 呗,支持的数据类型很多的,没有必要再去开个表
shot
2016-01-24 18:48:19 +08:00
不 提数据量就讨论性能都是耍流氓。
akira
2016-01-24 19:47:46 +08:00
影响肯定有,但是脱离实际场景讨论无价值。
blue7wings
2016-01-24 20:43:08 +08:00
@cevincheung
@TangMonk 谢谢,去了解一下。
iMouseWu
2016-01-24 21:20:54 +08:00
看需求和自己的业务场景了。
这些字段本来应该是可以记录在一张表的,但是随着业务的发展,发现其中有 10 个字段在 90%的场景下是会同时出现的,剩下的 5 个字段(比如说地址信息),在极少数的业务场景下才会用到,那么楼主可以把你一张表的数据分成两张表存储,以减少原始表的大小。
msg7086
2016-01-25 06:00:08 +08:00
主要是内存占用优化。
很多时候数据库的数据会缓存在内存中。如果能把大量无用字段分出去的话,对提高内存有效利用率很有帮助。
yuriko
2016-01-25 08:10:12 +08:00
不知道自己理解的对不对, mongo 应该没有表的概念了,就是一堆键值对的数据库……
附表使用率不高的话是合理的,反之就会拖累效率,多表查询是个效率不怎么的事情……
主键这东西和索引还是又一定关系的,对查询效率有影响
不是这方面的专家,说错轻喷
JamesRuan
2016-01-26 00:39:10 +08:00
对性能是一点有影响的,但是 ,一般人遇到的应用,性能一定是最后考虑的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/253015

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX