【问题标题】:What are other options for storing data in a web application besides a database? [closed]除了数据库,还有哪些其他选项可以在 Web 应用程序中存储数据?
【发布时间】:2023-03-31 14:35:01
【问题描述】:

我有一个非常小的数据库(15 个表,约 1000 行),它被非常频繁地访问以获取数据。我想知道除了用于存储和访问数据的数据库之外还有哪些其他选择?

【问题讨论】:

  • 内存数据库怎么样,例如redisothers?不要把婴儿和洗澡水一起倒掉。不过,您的问题很可能出在其他地方,您是否对其进行了分析?
  • 我不应该应用有关可能减慢应用程序的部分,请忽略该行并继续主要问题。对不起,我没有正确地用词,为了清楚起见,我将对其进行编辑。
  • 那么如果不是为了性能,为什么不想使用数据库呢?
  • @tjameson 我可能会使用一个,我只是想看看还有哪些其他选项可用。

标签: database web-applications web


【解决方案1】:

TL;DR; 除非您确实有必要以不同的方式组织数据,否则请使用关系 DBMS 选项,而不是尝试重新发明轮子。

就数据而言,关系数据库几乎总是最佳选择。针对搜索进行了优化,在插入和更新方面具有相对较好的性能,同时保持合理的结构水平,并遵守series of normal forms 以强制执行结构和良好的设计决策。


当您以结构化的方式存储数据时,始终需要“数据”“基础”。所以你总是需要一个数据库,数据库的实际实现和信息的组织方式被称为 DBMS(数据库管理系统),从这个意义上说,你有很多选择。

在我看来,就数据库的组织方式而言,您有非关系型数据库(通常称为 NO-SQL 数据库)

引用一些。

您可以使用多个关系 DBMS:

  • 甲骨文
  • Sql 服务器
  • Postgree SQL
  • MySql
  • Sqllite

甚至是其他类型的非通用但特定于应用程序的 DBMS。

一般而言,您对后端数据库的选择应根据您现在的需求以及您认为未来的需求来确定:

  • 您要维护和管理的数据
  • 您对数据的看法
  • 性能限制和非功能性要求。
  • 与众所周知的关系 SQL 对相比,您的团队对新技术的熟悉程度。
  • 数据的逻辑组织以及您计划如何访问它。

【讨论】:

  • 另一个问题:如果架构容易频繁变化怎么办?普通文件存储可能是一个不错的选择?
  • RDBMS 允许频繁更改模式而不会出现问题。编程语言很难应付。如果您使用的是像实体框架这样的 ORM,那么这就是改变模式的困难所在(然后您可能需要先设计对象,而不是先设计数据库)。根据您编写 SQL 语句的方式,您也可能会遇到问题,但同样,这不是数据库层,而是数据库之上的语言层可能会给您带来问题(尽管它也没有)。
【解决方案2】:

Tjameson 是对的,您可以使用内存存储来充当权威数据库,或充当数据库的缓存。

显然,如果内存数据库不时不时将数据刷新到磁盘,则内存数据库很可能太不稳定而无法永久存储。重新启动会杀死一切。

我也同意 tjameson 的观点,即问题可能出在其他地方。

调试生产问题的最佳方法是获取数据、数据、数据。问题并不总是在您认为的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 2011-05-02
    相关资源
    最近更新 更多