论坛首页 Java企业应用论坛

从一道面试题想到的论坛数据库设计

浏览 59786 次
精华帖 (7) :: 良好帖 (6) :: 新手帖 (10) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-04-09   最后修改:2009-04-09
jiangzhen1984 写道
wendong007 写道
这样的设计能用吗,你把数据查出来之后怎么确定那条数据是主题,哪些是回复呢,再遍历一次?还有就是你这样设计和分成两个表然后做单表查询的差别有多大,多一次查询也不会损失多大的性能吧,而且你这么设计的话,索引怎么建比较好呢,还有就是会不会造成这个表过热,还有……
我觉得如果真的负载很重,还是分表来的更实在些吧,另外,我同意猫咪的观点,像论坛这样的系统,使用缓存可以大大降低数据库的负载


再这么高插入更新的频率下 索引就有些不实用了,创建索引会降低插入更新的速度而且访问量这么大的情况下,索引不建议采用

 

谢谢指教,我考虑的是这么大的数据量放在一个表里面,而且又不建索引,效率会怎么样呢,或者说这个问题根本就没有考虑的必要,我觉得这个方案根本就不可行

0 请登录后投票
   发表时间:2009-04-09  
我赞成jiangzhen1984
0 请登录后投票
   发表时间:2009-04-09  
就单单这个论坛暂不考虑相关业务,只是实现简单的发帖和回帖,如果不采用传统数据库做存储呢?有没有其他的解决方案呢?如果有人用过别的方式存储的,可否说一下性能怎么样?
0 请登录后投票
   发表时间:2009-04-09  
对于这道题我们更关注的是分析的思路,题目是虚设的,但面对问题采取的手段这个才是最重要的
0 请登录后投票
   发表时间:2009-04-09  
不管这道题的真假
就这样的一个论坛,实时在更新、发帖、回帖。我觉得在数据库上建立索引不太好,但是如果不建立索引如何来提高查询等方面性能呢?
0 请登录后投票
   发表时间:2009-04-09   最后修改:2009-04-09
tangmi 写道
不管这道题的真假
就这样的一个论坛,实时在更新、发帖、回帖。我觉得在数据库上建立索引不太好,但是如果不建立索引如何来提高查询等方面性能呢?

 

分表 分库 缓存

1 请登录后投票
   发表时间:2009-04-09  
这么大,都是分布式数据库了。

放在多个表中,直接关联一点都没问题。

重要是横向切分
0 请登录后投票
   发表时间:2009-04-09   最后修改:2009-04-09
wendong007 写道
tangmi 写道
不管这道题的真假
就这样的一个论坛,实时在更新、发帖、回帖。我觉得在数据库上建立索引不太好,但是如果不建立索引如何来提高查询等方面性能呢?

 

分表 分库 缓存

真正的解决方案我说不好,你可以去看看twitter的一篇文章

http://www.infoq.com/news/2008/06/twitter-and-sharding

0 请登录后投票
   发表时间:2009-04-09  
kunee 写道
这么大,都是分布式数据库了。

放在多个表中,直接关联一点都没问题。

重要是横向切分

说的在细点吧~~~
0 请登录后投票
   发表时间:2009-04-09  
whaosoft 写道
kunee 写道
这么大,都是分布式数据库了。

放在多个表中,直接关联一点都没问题。

重要是横向切分

说的在细点吧~~~


这个说来话长了,简单点说就是 某一部分用户存在A库,另一部分存在B库,每个库只存放一定数量的用户,这样用户的增长可以很方便扩展便宜硬件。

需要做集成数据再从各个库里面抽,大型网站都是这样的(除了银行这种BT有钱的单位可能是统一处理)
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics