Php 为什么论坛在数据库中存储帖子?

Php 为什么论坛在数据库中存储帖子?,php,mysql,storage,forums,Php,Mysql,Storage,Forums,从一些论坛软件在数据库中存储数据的方式来看(例如phpBB使用MySQL数据库存储几乎所有内容),我开始想知道他们为什么这样做?难道它不能同样快速高效地使用吗。。也许xsl和xslt可以用来存储论坛主题和帖子?或者至少在一个主题中存储帖子 但这正是数据库设计和优化的目的,用于存储和检索数据。使用数据库可以让论坛设计者专注于他们的问题,而不用担心存储的实现。忽略数据库世界中已经完成的所有工作而实现自己的解决方案是没有意义的。这将需要更多的时间、更多的bug,而且运行速度也不会那么快。他们使用数据库

从一些论坛软件在数据库中存储数据的方式来看(例如phpBB使用MySQL数据库存储几乎所有内容),我开始想知道他们为什么这样做?难道它不能同样快速高效地使用吗。。也许xsl和xslt可以用来存储论坛主题和帖子?或者至少在一个主题中存储帖子

但这正是数据库设计和优化的目的,用于存储和检索数据。使用数据库可以让论坛设计者专注于他们的问题,而不用担心存储的实现。忽略数据库世界中已经完成的所有工作而实现自己的解决方案是没有意义的。这将需要更多的时间、更多的bug,而且运行速度也不会那么快。

他们使用数据库而不是平面文件的原因很多。下面是我脑海中的一些想法

高效的搜索

以下是一些帖子,您可以查看以了解更多信息:


简单、方便地访问数据。在日期之间、由用户创建或使用某些关键字查找帖子要容易得多。您可以使用平面文件存储完成上述所有操作,但这将是IO密集型且速度缓慢的。如果您想到将每篇文章存储在自己的文件中,那么您就会遇到磁盘空间不足的问题,这不是因为容量不足,而是因为您已经消耗了所有可用的索引节点

像这样的软件通常有一个静态缓存特性——不改变的页面被写入到静态HTML文件中,这些文件被提供,而不是访问数据库


将静态缓存与关系数据库存储混合在一起可以提供两个方面的最佳效果。

数据库引擎处理所有并发问题。想象一下,两个用户试图同时在你的论坛上写作。如果将帖子存储在文件中,第一次尝试将锁定文件,因此第二次尝试必须等待第一次完成

否则,如果要搜索,在数据库中搜索要比扫描所有文件快得多


因此,基本上,存储用户可以同时修改的数据并不是一个好主意,在数据库中搜索效率更高。

主要原因是,他们可以利用关系数据库的优势,例如根据一组动态条件轻松搜索帖子。可以肯定的是,您建议将内容存储在.xls-files-?@Stef中,不,他建议使用xsl格式(可扩展样式表语言)为什么人们将食物存储在冰箱中而不是发霉的纸箱中?适用于适当作业的适当工具。@Marc:为什么数据库适用<代码>我也会增加可伸缩性。这非常有用,谢谢!我希望我能给更多的人打个勾:(@JavaJosh94…哈,请随意给我;-)谢谢你解释文件被锁定的原因,我甚至没有想到这一点!