ZODB在现实生活中

时间:2010-03-05 18:01:36

标签: python zodb

用Python编写应用程序,并使用各种ORM设置和直接SQL。所有这些都像罪一样丑陋。

我一直把ZODB看作是一个对象商店,它看起来很有前途......你会推荐吗?您的经验,问题和批评是什么,特别是关于开发人员的观点,可扩展性,完整性,长期维护和替代方案?有人用它开始一个项目并抛弃它吗?为什么呢?

虽然ZODB,Pypersyst和其他人背后的想法很有趣,但他们似乎缺乏热情:(

5 个答案:

答案 0 :(得分:25)

我在Zope和外面使用ZODB已有十多年了。如果您的数据是分层的,这很好。客户经营的最大的数据存储可能......我不知道... 100GB在里面?无论如何,这个数量级的东西。

这是a performance comparison against Postgres

如果您正在编写WSGI Web应用程序,这些软件包可能很有用:

答案 1 :(得分:14)

与“任何键值存储”相比,ZODB的主要功能是将属性更改与真实ACID事务自动集成,并对其他持久对象进行干净的“任意”引用。

ZODB比Zope默认使用的FileStorage更大:

  • RelStorage后端允许您将数据放入RDBMS中,可以使用标准工具对其进行备份,复制等。
  • ZEO可以轻松扩展应用程序和离线作业。
  • 两阶段提交支持允许协调多个数据库之间的事务,包括RDBMS(假设它们提供了一个TPC感知层)。
  • 基于对象属性或包含的简单层次结构:您不需要编写递归自连接来模拟它。
  • 基于文件系统的BLOB支持使得提供大型文件变得微不足道。

总的来说,我很高兴使用ZODB几乎可以解决任何数据形状不明显“方形”的问题。

答案 2 :(得分:4)

我会推荐它。

我真的没有任何批评。如果它是您要查找的对象存储,则可以使用。我之前已经存储了250万个物体,并且没有感觉到压力。

答案 3 :(得分:2)

ZODB已用于大量大型数据库

大多数ZODB使用者可能是Zope用户,如果他们从Zope迁移出来,他们会迁移出去

性能不如relatonal数据库+ ORM那么好,特别是如果你有很多写入。

长期维护并不是很糟糕,您希望不时打包数据库,但这可以直接进行。

如果要在ZODB上使用多个进程,则必须使用ZEO,这比直接使用ZODB慢很多

我不知道ZODB如何在闪存盘上执行。

答案 4 :(得分:0)

通过酸洗,您应该能够以类似的方式使用任何key value数据库。