对于社交网站,哪种数据库设计更好?具有更多列和更少行的单个表,还是具有更少列但更多行的多个表?
例如:用户可以在自己的墙上或群组中发布更新。
我可以想到的两种数据库设计是:
设计1
用户帖子
- ID
- 用户身份
- 发布
- 约会时间
UserGroupPost:
- ID
- groupId
- 用户身份
- 发布
- 约会时间
潜在问题:可能需要加入,这可能(将来)成为缓慢的查询。
设计2
帖子:
- ID
- 用户身份
- groupId
- 发布
- 日期时间(如果用户在墙上张贴,则groupid将为null)
潜在问题:循环遍历大型数据集可能需要花费很长时间。
数据增加时如何获得更好的性能?还有其他(更好)的方法吗?
对我来说,多排几列。与拥有大型数据集相比,按部分地管理很容易。如果您最关心的是将来的大数据,请不要。Sql server设计时遇到了这种问题,您要做的就是正确设计它。如果您知道如何优化查询,那么拥有大型数据集就不是问题
—
Vincent Dagpin
使用执行计划确实有很大帮助。它告诉您查询的问题是什么。PS:不这样做循环,如果可能的话使用批量处理,该功能是已经存在,使用它
—
文森特Dagpin