【问题标题】:Why do forums store posts in a database?为什么论坛将帖子存储在数据库中?
【发布时间】:2011-05-29 17:46:36
【问题描述】:

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

【问题讨论】:

  • 主要原因是他们可以从关系数据库中获得好处,例如根据一组动态条件轻松搜索帖子。
  • 为了确定,您建议将内容存储在 .xls -files-?
  • @Stef,不,他提出的是 xsl 格式(可扩展样式表语言)
  • 为什么人们将食物存放在冰箱而不是发霉的纸板箱中?适合工作的适当工具。
  • @Marc:为什么数据库是合适的? </rhetorical>

标签: php mysql storage forums


【解决方案1】:

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

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?

【讨论】:

  • 我也会增加可扩展性。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    • 感谢您解释文件被锁定,我什至没想到!
    【解决方案4】:

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

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

    将静态缓存与关系数据库存储相结合,可提供两全其美的效果。

    【讨论】:

    • 这非常有用,谢谢!我希望我能给一个以上的人打勾:(
    • @JavaJosh94 ... 哈,请随意给我 ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多