用 Python 编写应用程序,并一直在使用各种 ORM 设置和直接 SQL。所有这些都像罪恶一样丑陋。
我一直将 ZODB 视为一个对象存储,它看起来是一个很有前途的替代方案……你会推荐它吗?你有什么经验、问题和批评,特别是关于开发人员的观点、可扩展性、完整性、长期维护和替代方案?有人用它开始一个项目并放弃它吗?为什么?
虽然 ZODB、Pypersyst 和其他人背后的想法很有趣,但似乎对他们缺乏热情:(
我在 Zope 内外使用 ZODB 已有十多年了。如果您的数据是分层的,那就太好了。客户运营的最大数据存储可能拥有。不知道,有100GB吗?反正就是那个数量级的东西。
如果您正在编写 WSGI Web 应用程序,这些包可能很有用:
与“任何键值存储”相比,ZODB 的关键特性是属性更改与真实 ACID 事务的自动集成,以及对其他持久对象的干净、“任意”引用。
ZODB 不仅仅是 Zope 默认使用的 FileStorage:
总的来说,我很高兴将 ZODB 用于几乎所有数据形状不是明显“正方形”的问题。
我会推荐它。
我真的没有任何批评。如果它是您正在寻找的对象存储,那么这就是要使用的对象。我之前已经在其中存储了 250 万个对象并且没有感到挤压。
ZODB 已用于大量大型数据库
大多数 ZODB 使用是/可能是 Zope 用户,如果他们从 Zope 迁移出去,他们就会迁移出去
性能不如关系数据库 + ORM 好,尤其是在您有大量写入的情况下。
长期维护还不错,你想时不时打包数据库,但那可以现场完成。
如果要对 ZODB 使用多个进程,则必须使用 ZEO,这比直接使用 ZODB 慢得多
我不知道 ZODB 在闪存盘上的表现如何。
通过酸洗,您应该能够以类似的方式使用任何键值数据库。