通过查看一些论坛软件在数据库中存储数据的方式(例如,phpBB 使用 MySQL 数据库来存储几乎所有内容),我开始想知道他们为什么这样做?难道它不能同样快速高效地使用..也许 xsl 和 xslt 来存储论坛主题和帖子?或者至少将帖子存储在主题中?
4 回答
他们使用数据库而不是平面文件的原因有很多。这里有一些我的想法。
索引和高效搜索
您可以查看更多帖子以获取更多信息:
但这正是数据库设计和优化的目的,用于存储和检索数据。使用数据库可以让论坛设计者专注于他们的问题,而不用担心实现存储。忽略数据库世界中已经完成的所有工作并实施您自己的解决方案是没有意义的。这将花费更多时间,更多错误,并且不会运行得那么快。
数据库引擎处理所有并发问题。想象一下,两个用户同时尝试在您的论坛中写作。如果您将帖子存储在文件中,第一次尝试将锁定文件,因此第二次尝试必须等待第一次完成。
否则,如果您想搜索,在数据库中进行搜索比扫描所有文件要快得多。
所以基本上,存储可以由用户同时修改的数据并不是一个好主意,并且在数据库中搜索效率更高。
简单,轻松访问数据。在日期之间、由用户创建或使用某些关键字查找帖子要容易得多。您可以使用平面文件存储来完成上述所有操作,但这将是 IO 密集型和缓慢的。如果您有将每个帖子存储在自己的文件中的想法,那么您就会遇到磁盘空间不足的问题,这不是因为容量不足,而是因为您已经消耗了所有可用的 inode。
诸如此类的软件通常具有静态缓存功能 - 不会更改的页面被写入静态 HTML 文件,并且这些页面被提供而不是访问数据库。
将静态缓存与关系数据库存储相结合提供了两全其美的效果。