Python DBAPI游标是否与SQL游标相同?如果是这样如何提高性能?什么应该是替代方法?

时间:2017-06-30 04:35:36

标签: sql python-2.7 orm sqlalchemy psycopg2

我们有一个非常大的数据查询过程。 截至目前,我们正在使用原始SQL查询获取数据,我们正在使用python db api游标执行它们。

import psycopg2
conn = psycopg2.connection("DB_connection_string")
cursor = conn.cursor()
cursor.execute("select * from so_so")

这引发了性能问题,我们认为这些游标与Sql游标相同,后者对性能有害。

它们一样吗?如果是这样,有人可以建议更快的方法吗?

这种方法的SQLALCHEMY或ORM模式是否更快?

我也读过SQLALCHEMY建立在这样的驱动程序上,它们与数据库交互形成一个层。

1 个答案:

答案 0 :(得分:1)

不,普通的psycopg2游标不是PostgreSQL server-side cursors:它们是轻量级客户端数据结构,可以保存客户端所需时间的查询结果。

psycopg可以使用named cursors使用服务器端游标,默认情况下不使用。