【问题标题】:Can Rails & Django (now) query more than one database at a time?Rails 和 Django(现在)可以一次查询多个数据库吗?
【发布时间】:2011-12-25 13:31:43
【问题描述】:

编辑:既然您要求提供细节,请考虑一个照片共享网站(如 Flickr 或 picasa - 我知道一个使用 PHP,而另一个使用Python)例如。如果它被证明是成功的,它需要大规模地扩展。我希望这足够具体。

自从我听到任何关于此的讨论以来已经有一段时间了,而且由于我正在为 Web 项目选择 Ruby 和 Python 的决策过程,所以问题来了:

[1] 当前版本的 Rails (Ruby) 和 Django (Python) 一次可以查询多个数据库吗?

[2] 我还在 SO 上读到“如果您的重点是构建网站或 Web 应用程序,请使用 Ruby”(因为它具有功能齐全、以 Web 为中心的 Rails)。但那是大约 2 年前的事了。 Python Web 框架 Django 今天的状态如何?现在是和 Rails 正面交锋了吗?

编辑: [3] 不知道我是否可以在这里问这个问题,Stack Exchange 网站的加载速度真是令人惊讶。 SE 站点是否仍然使用相同的技术mentioned here?如果没有,有人有更新吗?

【问题讨论】:

  • 在 [1] 中,您问的是 Ruby-on-Rails 和 Django 是否可以一次使用多个数据库,对吗?因为否则这个问题完全没有意义。
  • @Dmitry Beransky:对。我将立即编辑 Q。

标签: python ruby-on-rails ruby database django


【解决方案1】:

在这两种语言中都没有任何东西可以阻止您一次连接到多个数据库。真正的问题是您为什么要这样做?

StackOverflow 网站速度如此之快的原因与其说是技术的选择,不如说是技术的应用方式。数据库优化技术在很大程度上独立于所涉及的平台,仅基于常识性原则和经过验证的扩展方法。

Ruby on Rails 提供了多种连接到多个数据库的方法,尽管您可能是指连接到一个系统,该系统分为多个分片、多租户分区,或者不同形式的数据存储在不同的数据库中。所有这些方法都受支持,但它们在实现上却大不相同。

如果你想要一个具体的答案,你应该发布一个新问题,并概述你试图解决的问题。

【讨论】:

  • 再次编辑 Q:请考虑一个照片共享网站。
  • 如果你没有扩展问题,你就无法扩展某些东西,如果你没有构建它,你就没有扩展问题。有效扩展某些东西的唯一方法是仔细调查性能问题并找到解决方案。早期暴露这些的一个好方法是运行预期使用模式的大规模模拟,例如上传 1000 万张照片并每秒进行大量查询。没有测试,你只是在黑暗中拍摄,会浪费很多时间。
  • “照片共享网站”可能意味着任何东西。也许是“朋友”功能导致了性能问题。也许它正在调整图像大小或应用效果。您将必须构建一个快速原型以查看问题所在。过早的优化会大大减慢您的开发过程,而且通常您的直觉会引导您优化简单、不相关的事情,而不是困难和重要的事情。
  • 请记住,您首先优化花费最长聚合时间的事物,而不是最慢的事物。一天运行十几次的一分钟操作在一天运行一百万次的两秒操作之后得到修复。
  • 随着应用程序的增长和扩展,您为启动而构建的任何应用程序很可能会被完全替换。没有可扩展的应用程序,唯一没有扩展问题的应用程序是没有增长的。
【解决方案2】:

Django 中存在多数据库支持。在我们的 Django 项目中,我们有从 Postgres、MySQL、Oracle 和 MS SQL Server 中提取数据的模型(根据数据库的不同,存在各种问题,但它们通常都能正常工作)。根据我的阅读,RoR 也支持多个数据库。每个框架都有自己的一套优势和劣势,您必须根据您的特定需求和要求进行评估。我认为没有人可以在不了解您的具体情况的情况下给您一个(有效/有用的)一般性答案。

【讨论】:

  • 以照片共享网站为例。你的答案是什么?编辑了我的问题,请看一下。
猜你喜欢
  • 1970-01-01
  • 2021-10-07
  • 2011-03-01
  • 2021-11-26
  • 2014-12-05
  • 2019-08-17
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
相关资源
最近更新 更多