Twisted应用程序有一个以可伸缩的方式与数据库对话的API:twisted.enterprise.dbapi
令人困惑的是,选择哪个数据库?
数据库将有一个Twisted应用程序,它主要进行插入和更新,相对较少的选择,然后是其他严格只读的客户端,它们直接访问数据库进行选择。
(只读用户不一定选择Twisted应用程序插入的数据;它不像是将数据库用作消息队列)
我的理解是-我希望更正/建议的-是这样的:
发布于 2010-04-26 20:21:13
可扩展性
twisted.enterprise.adbapi
不一定是以可伸缩的方式与数据库对话的接口。可伸缩性是一个你需要单独解决的问题。twisted.enterprise.adbapi
真正声称要做的唯一一件事就是让您可以使用DB-API2.0模块,而不会出现通常所暗示的阻塞。
Postgres
是。这是正确的答案。我不认为所有的Python绑定都是被遗弃的--例如,psycopg2似乎是主动维护的。事实上,他们只是为异步访问添加了一些新的绑定,Twisted最终可能会提供一个接口。
SQLite3也很酷。您可能希望在您的应用程序中使用Postgres或SQLite3;例如,即使您想在Postgres上部署,您的单元测试在SQLite3上运行也肯定会更愉快。
Other?
很难知道另一个数据库(也许是非关系数据库)是否比Postgres更适合您的应用程序。这在很大程度上取决于您将要存储的特定数据以及需要对其运行的查询。如果你的数据库中有有趣的关系,Postgres看起来确实是一个很好的答案。但是,如果您的所有查询看起来都像"SELECT foo,bar FROM baz“,那么可能有一个更简单、性能更高的选项。
发布于 2012-01-05 01:10:48
有txpostgres
库,它是twisted.enterprise.dbapi
的替代,线程池的-instead和阻塞的DB IO,它是完全异步的,利用了psycopg2
的内置异步功能。
我们正在一家大公司的生产中使用它,到目前为止,它一直很好地服务于我们。此外,它正在积极开发-我们最近报告的一个bug很快就被解决了。
发布于 2012-07-01 05:08:20
你可以看看nosql数据库,比如mongodb或者couchdb with twisted。使用基于nosql的数据库比使用mysql或postgres向外扩展要容易得多。
https://stackoverflow.com/questions/2711621
复制相似问题