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

时间:2011-05-29 17:46:37

标签: php mysql storage forums

通过查看某些论坛软件将数据存储在数据库中的方式(例如,phpBB使用MySQL数据库存储几乎所有内容),我开始想知道他们为什么这样做?难道不能像使用xslt一样快速有效地存储论坛主题和帖子吗?或者至少将帖子存储在主题中?

4 个答案:

答案 0 :(得分:8)

他们使用数据库而不是平面文件的原因有很多。这里有一些不在我的脑海里。

Referential integrity

Indexes并高效搜索

SQL Joins

以下是您可以查看的更多帖子以获取更多信息:

If i can store my data in text files and easily can deal with these files, why should i use database like Mysql, oracle etc

Why use MySQL over flatfiles?

Why use SQL database?

答案 1 :(得分:4)

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

答案 2 :(得分:3)

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

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

所以基本上,存储可以同时修改数据的数据并不是一个好主意,搜索在数据库中更有效。

答案 3 :(得分:1)

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

此类软件通常具有静态缓存功能 - 不会更改的页面会写入静态HTML文件,而是提供这些文件而不是访问数据库。

将静态缓存与关系数据库存储混合可以提供两全其美的优势。