Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PythonTwisted数据库_Python_Database_Scalability_Rdbms_Twisted - Fatal编程技术网

PythonTwisted数据库

PythonTwisted数据库,python,database,scalability,rdbms,twisted,Python,Database,Scalability,Rdbms,Twisted,Twisted应用程序有一个API,可用于以可扩展的方式与数据库通信: 令人困惑的是,选择哪个数据库 数据库将有一个Twisted应用程序,它主要进行插入和更新,选择相对较少,然后是其他直接访问数据库的严格只读客户端进行选择 (只读用户不一定选择Twisted应用程序正在插入的数据;它不像数据库被用作消息队列) 我的理解-我希望纠正/建议--是: Postgres是一个很好的数据库,但是几乎所有的Python绑定——其中有一个令人困惑的迷宫——都是废弃软件 postgres也有,但这会引起很多

Twisted应用程序有一个API,可用于以可扩展的方式与数据库通信:

令人困惑的是,选择哪个数据库

数据库将有一个Twisted应用程序,它主要进行插入和更新,选择相对较少,然后是其他直接访问数据库的严格只读客户端进行选择

(只读用户不一定选择Twisted应用程序正在插入的数据;它不像数据库被用作消息队列)

我的理解-我希望纠正/建议--是:

  • Postgres是一个很好的数据库,但是几乎所有的Python绑定——其中有一个令人困惑的迷宫——都是废弃软件
  • postgres也有,但这会引起很多关于自己进行连接池和其他事情的噪音;这是否与Twisted异步数据库连接池等优雅/有用/透明地共存
  • SQLLite是一个很好的数据库,但如果以多用户的方式使用,它会锁定整个数据库,因此性能会受到我设想的使用模式的影响;它也有不同的机制来键入列值
  • MySQL——在甲骨文收购之后,谁想现在就采用它,还是采用fork
  • 还有什么别的吗

  • 可扩展性

    twisted.enterprise.adbapi
    不一定是以可伸缩方式与数据库对话的接口。可伸缩性是一个需要单独解决的问题。
    twisted.enterprise.adbapi
    真正声称要做的唯一一件事就是允许您使用DB-API2.0模块,而不需要通常意味着的阻塞

    博士后

    对。这是正确的答案。我不认为所有的Python绑定都是废弃的——例如,psycopg2似乎是积极维护的。事实上,他们只是为异步访问添加了一些新绑定,Twisted最终可能会提供一个接口

    SQLite3也很酷。您可能希望在应用程序中使用Postgres或SQLite3;例如,即使您想针对Postgres进行部署,您的单元测试在SQLite3上运行肯定会更愉快

    其他?


    很难知道另一个数据库(可能是非关系数据库)是否比Postgres更适合您的应用程序。这在很大程度上取决于要存储的特定数据以及需要对其运行的查询。如果你的数据库中有有趣的关系,Postgres似乎是一个很好的答案。但是,如果您的所有查询看起来像“SELECT foo,bar FROM baz”,那么可能会有一个更简单、更高性能的选项。

    txpostgres
    库,它是twisted.enterprise.dbapi的替代品,而不是线程池和阻塞DB IO,它是完全异步的,利用
    psycopg2
    的内置异步功能

    我们正在一家大公司的生产中使用它,到目前为止,它为我们提供了很好的服务。而且,它正在积极开发中——我们最近报告的一个bug很快就被解决了


    您可以使用twisted查看nosql数据库,如mongodb或couchdb。
    与mysql或postgres相比,使用基于nosql的数据库进行扩展可能更容易。

    这是一个足够大的主题,值得提出15或20个专门的问题,而不是在评论中用几句话。;)“但是,如果您的所有查询看起来都像“SELECT foo,bar FROM baz”,那么可能会有一个更简单、更高性能的选项”-->写这篇文章时您想到了什么?:)也许是一些不相关的东西。保持元组的无序列表是许多系统都可以做到的事情,而不一定是显示RDBMs优势的事情。Oracle dbs呢?