如何在论坛上检索和显示帖子?

时间:2010-06-02 15:31:40

标签: php database forum

我正在努力解决一个概念问题。当您拥有包含数千个帖子和/或主题的论坛时,如何检索要在您的网站上显示的所有帖子?每当有人访问您的页面然后捕获数组中的每个帖子并显示它时,您是否连接到您的数据库?当然,这似乎对您的服务器非常沉重,并且会导致大量不必要的数据库读取。任何人都可以对这个话题有所了解吗?

感谢。

3 个答案:

答案 0 :(得分:3)

您永远不会立即检索所有这些帖子。在大多数情况下,论坛显示一个X线程/帖子的页面,并且每次提供页面时,您只需从数据库中获取这些X线程/帖子。 RDBMS非常擅长这一点。一个论坛(应该)是非常动态的,所以它确实在数据库上产生了相当好的负载,但这就是数据库的制作,存储和检索数据。

答案 1 :(得分:1)

一种新的(ish)方法是使用像CouchDB这样的面向文档的数据库,其中关于单个帖子的所有内容都存储在同一文档中,并且该文档会根据请求加载。

在这种情况下,面向文档的数据库似乎可以很好地用于论坛或博客类型的站点。

就关系数据库而言,我非常确定每次页面加载时数据库都会被命中,除非实现了某种缓存(然后你不得不担心数据变得陈旧,这会导致全新一堆问题。)

答案 2 :(得分:0)

不要担心过时的数据。 Facebook没有...他们的数据库只是“最终一致”。这个想法是这样的:确保评论总是100%,总是最新的是非常昂贵的。这确实给你的数据库带来了很大的负担。虽然正如Serty所说,这就是数据库的用途,但是你的物理盒是否足以承受负载是另一回事。

Facebook和Digg仅举几例采用了不同的方法......每页的每一个负载都是100%准确的,真的非常重要吗?有多少页面加载实际上会导致最终用户读取每条评论?在大多数情况下获得正确的评论要便宜得多,而且“大多数”我的意思是可以做出决定。丢失评论的页面有10%的可能性吗?是1%的几率?现在需要多少个节点拥有正确的数据。当我写一篇新评论时,有多少节点必须说他们获得了更新才能获得成功。

我喜欢Cassandra背后的想法,总结一下,“我们愿意花多少钱让Martha姨妈评论她的侄子的洗礼图片100%正确?”

但对于免费网站来说,这是一个很好的问题,但这对于商业应用程序来说不会那么好。