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



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

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

参考完整性

索引和高效搜索

SQL加入

以下是更多的帖子,你可以查看更多信息:

如果我可以将数据存储在文本文件中,并且可以轻松地处理这些文件,为什么我要使用Mysql、oracle等数据库

为什么在平面文件上使用MySQL?

为什么要使用SQL数据库?

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

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

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

所以基本上,存储用户可以同时修改的数据并不是一个好主意,而且在数据库中搜索要高效得多。

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

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

将静态缓存与关系数据库存储混合使用可以实现两个世界的最佳效果。

相关内容

  • 没有找到相关文章

最新更新