【问题标题】:When to use a flat file over RDMS/NOSQL/etc何时通过 RDMS/NOSQL/etc 使用平面文件
【发布时间】:2014-01-21 07:22:40
【问题描述】:

我处理的问题领域是 Web 应用程序和 Web API。

我做开发人员的时间越长,我就越开始质疑关系数据库的必要性,尽管主要想法似乎是将所有东西都塞进数据库中。

什么时候可以简单地将平面文件用于 Web 应用程序和/或 Web API?

例如,据我了解,已有数十年历史的大规模 IRC 只是将聊天对话附加到打开的平面文件(无数据库、无缓存等)。

使用平面文件是否会让您失去功能、性能、数据一致性、持久性等...尤其是考虑到数据库简单地将信息存储在平面文件本身中?

【问题讨论】:

    标签: database caching nosql scalability flat-file


    【解决方案1】:

    如果您只需要从内容创建文件,则应该选择平面文件。 (例如博客)

    您将创建一个系统来构建一个要使用的 html,在生成后将其用作静态资产。处理这方面的代码比使用 RDBMS 快得多。

    如果您需要高度动态的内容,您应该选择 RDBMS,因为它具有性能,但如果您可以采用生成静态内容的路线并且只使用一些 API 端点,那么您可以节省一百万万亿字节的 RAM。到目前为止,MySQL/MariaDB 和 MongoDB 都是内存大户。

    我真的很努力让 Mongo 和 MySQL 在我的 1GB RAM 服务器上工作,但它总是崩溃,同时,我的静态页面运行顺利,除了 HTTP 连接的套接字之外没有使用任何 ram。

    如果您想为用户提供流畅的体验,大多数页面从来都不需要动态内容!一直都是静态内容。

    【讨论】:

      【解决方案2】:

      你必须制定出你的要求。例如:

      • 您想要交易吗?如果是,那么平面文件不好(顺便说一句 RDBMS 文件不是“简单”的平面文件!)
        • 键/值数据库可以工作吗?如果是,那么也许 NoSQL 数据库适合。
        • 复原力?
        • 复制?
        • 多种复杂数据类型? 也许 RDBMS。 解决所有这些(可能还有更多),然后看看适合什么...

      【讨论】:

      • 我正在寻找的是有人说平面文件对 x、y、z 有好处,但不要把 a、b、c 做得很好。然后为 RDMS、Key/Value 等编写相同的好/坏用例。
      • 你听起来好像你已经开发了一段时间,所以你应该能够自己解决它:) 这个链接bing.com/… 提出了这个页面databasedev.co.uk/flatfile-vs-rdbms.html - 我确定那里是其他人。没有一个简短的答案。它取决于大量的需求,这些需求会随着每个实现而改变......
      猜你喜欢
      • 2023-03-27
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 2017-10-27
      相关资源
      最近更新 更多