数据库 关于数据库设计的疑问,user 是分成 user_info 和 user_profile 还是单独一个表

Zoker · 2014年05月08日 · 最后由 kesin 回复于 2014年05月09日 · 2235 次阅读

最近看到公司数据库发现了这个问题,于是开始纠结其性能上得问题了。

user表是分成user_info(经常访问和操作)和user_profile(只有在进个人页面才会操作) 还是说全都放到一个users表里面去?

对于文章而言是把文章得内容单独放到一个表好,还是全都放到一起好?

各位走过路过请发表下自己得意见。

共收到 13 条回复

文章这个地方,之所以要拆,是因为文档内容是 text 类型的,数据会比较大,所以导致 sql 里每一行都变大,而 sql 是按行扫描的,所以这样影响效率。

数据量不大的话,不管是你说的 user 表还是 article 表,都放不要拆。

#1楼 @alsotang 10w+的用户数据量呢?

#2楼 @kesin 10w根本就不算是大数据啊。。。

#2楼 @kesin 如果算 500 bytes 一个行的话,一共也就

> 10 * 10000 * 500 / 1000 / 1000
50MB

的数据

#4楼 @alsotang 那你觉得像so和github这种类型的网站,他们的user表是如何设计的呢?

常用的做法是,个人不能随意修改的东西比如密码、邮箱、用户名等等放一个表。因为修改时比较麻烦,需要认证、发邮件什么的。其他可以随意修改的比如自我介绍等等放另外一个表。

好处是profile的部分用户修改时比较方便,你也不需要加入特殊的逻辑。稍微麻烦的地方就是经常要include,不过也不是什么大问题。

性能没什么好考虑的,你遇到了瓶颈再说。

个人偏向@billy 的做法。

想拆就拆呗,反正有model方法可以delegate

#9楼 @ericguo 嗯,那关注表呢,都放在一个表里面是不是量太大了?比如关注用户type字段就是user,关注帖子type就是post,还是说分开两个表一个user关注表,一个post关注表呢?

用不着,SO没拆

才10w用户的话,完全不用拆。 到1000w用户再考虑拆这些,现在先快点把东西搞出来是正道。

#12楼 @kgen 嗯,谢谢,是现有的一个项目,觉得设置的不太合理,看来我对大数据量的概念还不是很够,了解一下去。

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