与文件系统相比,使用数据库存储配置信息的优缺点是什么

时间:2012-04-09 19:19:36

标签: java sql xml relational-database configuration-files

假设您的任务是编写必须以某种格式存储配置信息的Web应用程序。与将信息存储在文件中相比,将这些配置信息存储在关系数据库中有什么好处和缺点?配置选项可能包括但不限于数据保留设置和与外部系统连接的设置(例如IP地址,端口,用户名,密码)。

3 个答案:

答案 0 :(得分:4)

以下是优缺点摘要

文件优点:

  1. 快速访问配置数据。 (假设没有缓存)
  2. 可以不同地配置每个服务器(在负载平衡情况下)
  3. 您已经需要一个数据库凭据文件,因此所有内容都可以存储在一个位置。
  4. 文件缺点:

    1. 在负载平衡环境中配置很困难。
    2. 在开发中添加设置时,最常记得将它们移动到生产中的每个服务器上的文件中。
    3. 如果要编写控制面板以在运行时更改设置,则网络服务器必须可以写入配置。由于时间问题和/或锁定,操作控制面板中的文件很麻烦。
    4. 数据库优点:

      1. 负载均衡器可以跨群集共享配置
      2. 很容易远程检查设置或更改它们,例如在phpMyAdmin或直接的SQL客户端。
      3. 控制面板开发变得简单。
      4. 可以通过缓存memcached中的配置或内存中的哈希来缓解性能影响。
      5. 程序员更有可能控制设置而不是IT人员,或者至少可以通过控制面板进行控制。
      6. 数据库缺点:

        1. 如果您持续提取设置,性能可能会很慢。
        2. 如果您不提供工具,系统管理员可能更难管理产品而不是文件。他们可能不是sql gurus。
        3. 聚类更是一种痛苦。
        4. 这取决于个人偏好以及提供简单配置的任何当前或可能的未来要求。

答案 1 :(得分:2)

现在是一个真正的答案。

我猜最后这是一个品味问题

临:

  • 您可以添加管理页面来编辑应用程序中的设置

缺点:

  • 如果您的数据库不可用,您的设置也已消失
  • 如果您将数据库迁移到其他环境(例如,生产数据库以进行测试以进行某些问题检查),则会包含您的设置
  • 稍微难以部署
  • 更难添加到版本控制
  • 无论如何都需要一个文件来存储数据库凭据

答案 2 :(得分:1)

因为那时您所要做的就是正确配置连接池(无论如何都应该这样做),然后您知道所有设置的位置。此外,它们可以在运行时更新,它们可以使用应用程序向上或向下更新,并且在部署应用程序时无法进行更新。

各种各样的好理由。

相关问题