【问题标题】:Looking for a webapp framework that does away with the database寻找一个取消数据库的 webapp 框架
【发布时间】:2011-06-28 10:45:46
【问题描述】:

在过去一年左右的时间里,我一直在使用 Django 进行开发,真的 好好享受。但有时我发现 ORM 有点 紧身衣。我来回洗牌的所有数据 数据库很容易装入 1GB 的 RAM。即使项目增长了 几个数量级,它仍然适合 1GB。

我想要一个解决方案,我的应用程序只需要从磁盘读取 在启动时,但在我更新对象时隐式写入磁盘。一世 不太关心这可能给我的任何速度增加。什么 我真正追求的是增加的灵活性。如果我有一个问题 非常适合链表或树或其他一些 数据结构,我不应该把它移植到关系上 数据库。

Python 会很好,但其他语言也可以。我在探索中 这个阶段。我想了解一下解决方案是什么 在那里。在谷歌搜索这个问题时,我得到了很多与 不同的 Nosql 项目。但据我所知,Nosql 就是 当您超出关系数据库时您会做什么,因为您也有 很多数据。我真的处于光谱的另一端。我有这么 关系数据库实际上是矫枉过正的小数据。

Object databases 是一个 谷歌搜索这个问题时出现的其他事情,提醒了 Zope 和 ZODB 的我。很久以前我涉足过Zope,真的 不喜欢它。但是读了一点对象数据库让我觉得 可能是我正在寻找的东西。再说一次,他们普遍未能 吸引用户让我怀疑。对象数据库已经出现 很长一段时间,仍然没有流行起来。我猜 这意味着他们有问题?

【问题讨论】:

  • 您有什么特别的原因想要将 Django 作为一个整体转储而不是仅仅使用其他一些存储机制?如果你不想,你不必使用 ORM,你知道的。
  • 没有任何理由。但是我应该使用哪种存储后端来满足要求?

标签: python nosql web-frameworks ram object-oriented-database


【解决方案1】:

如果您正在寻找“将数据结构存储在内存中”和“将它们备份到磁盘”,那么您确实在寻找持久缓存系统并且Redis 完全符合要求。

如果你想使用 django,内置了一个很棒的缓存系统,它可以通过Redis-Cache 项目插入到 redis 后端。此外,redis 提供的数据结构与 python 数据结构具有一对一的映射关系,因此非常无缝。

我不太确定跳过数据库本身的概念是否是个好主意。数据库在聚合、注释、关系等方面提供了如此强大的功能,所有这些都在可接受的性能水平范围内,直到您达到真正的大规模。

也许另一个想法是使用SQLite in-memory database。 SQLite 这些天如此无处不在,它已经消失在基础设施中。它是内置的,Android 应用程序,iphone 应用程序,并得到所有标准库的支持。它也是一个很棒的软件,开发和测试得很好,很难反对使用它。

【讨论】:

    【解决方案2】:

    我工作的公司(Starcounter)创建了一个完全按照您描述的方式工作的数据库。我们已经与合作伙伴客户一起运行该数据库几年了,并且即将公开该产品。我们创建它的主要原因是为了易于使用和性能。如果您在我们的公司论坛上给我发消息(我是 Starconter Jack),我很乐意给您发送一份副本。 关于面向对象数据库的主题; OO数据库失败的原因主要是因为它们是实验而不是真实产品。它们实现得很差,只支持 OO 范式,忽略了 SQL 和 ODBC 等标准。他们还缺乏稳定性、性能和成熟度。他们的故事类似于 iPhone、iPad 和 Kindle 之前一两年的早期平板电脑、电子书和智能手机。 但就像任何技术一样,有两个浪潮(查看“炒作周期”)。虽然第一波会令人失望,但第二波会很好。第一个将由概念和想法驱动,缺乏商业成功和现实生活可用性。第二波将不希望与第一波失败的霉味有任何关系,因此将使用新的和新鲜的首字母缩略词和流行语。 未来的数据库将源于 NoSQL 运动。它将增加对 SQL 的支持,许多人会认为这很新颖。它将增加良好的语言集成(大多数语言都是 oo 语言),许多人会认为这也很新颖。它将支持文件,许多人会认为这将是新奇的。许多人会重新发现对交易等的需求。 一些脾气暴躁的老人会试图告诉我们,我们所做的只是重塑现有的想法。在某种程度上,他们是对的;在某些方面他们不会。这一次,概念成熟了。新的想法将被添加,实用主义将被允许。 但话又说回来,iPad 在某种程度上仍然是 PDA。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多