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

Php 如何在论坛上检索和显示帖子?,php,database,forum,Php,Database,Forum,我正在为一个概念性的问题而挣扎。当你有一个拥有数千篇帖子和/或帖子的论坛时,你如何检索所有要在你的网站上显示的帖子?您是否每次有人访问您的页面时都连接到您的数据库,然后捕获阵列中的每个帖子并显示它?当然,这似乎会给服务器带来很大的负担,并会导致大量不必要的数据库读取。有人能对这个话题有所启发吗 谢谢。一种新的(ish)方法是使用面向文档的数据库,例如,单个帖子的所有内容都存储在同一个文档中,并根据请求加载该文档 在这种情况下,面向文档的数据库似乎可以很好地用于论坛或博客类型的站点 就关系数据库而

我正在为一个概念性的问题而挣扎。当你有一个拥有数千篇帖子和/或帖子的论坛时,你如何检索所有要在你的网站上显示的帖子?您是否每次有人访问您的页面时都连接到您的数据库,然后捕获阵列中的每个帖子并显示它?当然,这似乎会给服务器带来很大的负担,并会导致大量不必要的数据库读取。有人能对这个话题有所启发吗

谢谢。

一种新的(ish)方法是使用面向文档的数据库,例如,单个帖子的所有内容都存储在同一个文档中,并根据请求加载该文档

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


就关系数据库而言,我敢肯定,除非实现了某种缓存,否则每次加载页面时数据库都会被命中(这样你就不得不担心数据过时,这会带来全新的混乱问题。)

你永远不会一次检索所有这些帖子。在大多数情况下,论坛都会显示一个包含X个线程/帖子的页面,每次提供页面时,您都会从数据库中获取这些X个线程/帖子。RDBMS在这方面相当出色。论坛是(应该)非常动态的,因此它确实会在数据库上产生相当好的负载,但这就是数据库的用途,存储和检索数据。

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

Facebook和Digg采取了不同的方法。。。每一页的每一次加载都要100%准确,这真的那么重要吗?到底有多少页面加载导致最终用户阅读每一条评论?在大多数情况下,得到正确的评论要便宜得多,我说的“大多数”是指你需要做出决定的事情。有10%的几率出现缺少评论的页面可以吗?有1%的机会吗?现在需要多少节点拥有正确的数据。当我写一个新的评论时,有多少节点说他们得到了更新才能成功

我喜欢卡桑德拉背后的想法,概括地说,“我们愿意花多少钱让玛莎姨妈对她侄子洗礼照的评论100%正确?”


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

有趣的是,我不知道有这样的数据库存在。谢谢你的回答。我明白了,所以一般来说,在数据库上增加一定的负载是可以的。很高兴知道。谢谢。如果facebook可以处理数百万条帖子,我相信你的网站也可以:)@@ggfan,比如。。。如果超人能用他的睡衣阻止一颗超速的子弹,我相信你也能。