gpt4 book ai didi

sqlite - 本地 SQLite 与远程 MongoDB

转载 作者:IT王子 更新时间:2023-10-29 06:22:31 26 4
gpt4 key购买 nike

我正在设计一个新的 Web 项目,在研究了一些针对可扩展性的选项之后,我想出了两个数据库解决方案:

  • 为可扩展方式精心设计的本地 SQLite 文件(每个 X 用户一个新的数据库文件,因为写入将取决于用户内容,没有跨用户数据依赖);
  • 远程 MongoDB 服务器(如 Mongolab ),因为我的主机服务器不为 MongoDB 提供服务。

我不信任当前共享主机上的 MySQL 服务器,因为它经常出现故障(我在另一台主机上也遇到过 MySQL 问题)。出于同样的原因,我不会使用 postgres。

SQLite 的优点:

  • 它是本地的,所以它必须更快(我会注意正确使用索引和事务);
  • 我不需要担心 tcp 嗅探,因为 Mongo 有线协议(protocol) is not crypted ;
  • 我不需要担心服务器中断,因为 SQLite 是无服务器的。

MongoDB 的优点:

  • 它更容易扩展;
  • 我不需要担心拆分数据库,因为可扩展性似乎很自然;
  • 我不需要担心模式更改,因为 Mongo 是无模式的并且 SQLite doesn't fully support alter table (特别考虑更改许多生产文件等)。

我需要帮助来做出决定(并可能考虑第三种选择)。当写入和读取操作不断增长时,哪个更好?

我将使用 Ruby。

最佳答案

SQLite 方法的一个主要风险是,随着扩展需求的增加,您将无法(轻松)部署在多个应用程序服务器上。您可以将用户划分到单独的服务器中,但如果该服务器出现故障,您将有一些用户无法访问他们的数据。

使用 MongoDB(或任何其他集中式服务)可以缓解这个问题,因为您的 Web 服务器是无状态的——可以随时添加或删除它们以适应 Web 负载,而不必担心哪些数据位于何处。

关于sqlite - 本地 SQLite 与远程 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9137258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com