程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了游标如何在Python的DB-API中工作?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决游标如何在Python的DB-API中工作??

开发过程中遇到游标如何在Python的DB-API中工作?的问题如何解决?下面主要结合日常开发的经验,给出你关于游标如何在Python的DB-API中工作?的解决方法建议,希望对你解决游标如何在Python的DB-API中工作?有所启发或帮助;

是的,我知道已经几个月了:P

DB-API的游标似乎紧跟sql游标之后建模。对于AFA资源(行)管理, DB-API没有指定客户端必须检索所有行还是DECLARE实际的sql游标 。只要fetchXXX接口执行了应有的功能,DB-API就会很高兴。

涉及到AFA psycopg2游标(您可能知道),“未命名的DB-API游标”将获取整个结果集-AFAIK由libpq缓冲在内存中。“命名的DB- API游标”(可能不是可移植的psycopg2概念)将按需请求行(fetchXXX方法)。

如“未知”所引用,executemany可用于优化同一命令的多次运行。但是,它不能满足准备好的语句的需要;当具有不同参数集的语句的重复执行不是直接顺序执行时,executemany()的性能将与execute()相同。DB- API确实为“驱动程序”作者提供了缓存执行的语句的能力,但是其实现(语句的作用域/生存期是多少?)是不确定的,因此无法在DB-API实现中设置期望值。

如果要将大量数据加载到postgresql中,强烈建议尝试找到一种使用COpY的方法。

解决方法

我一直在RDBMS’(MySQL和POSTGReSQL)中使用python,并且我注意到我真的不明白如何使用游标。

通常,使脚本通过客户端DB-API(如psycopg2或MySQLdb)连接到DB:

connection = psycopg2.connect(host='otherhost',etC)

然后创建一个游标:

cursor = connection.cursor()

然后可以发出查询和命令:

cursor.execute("SELECT * FROM etc")

我想知道查询的结果在哪里?在服务器上吗?还是我的客户端和服务器上的一点?然后,如果需要访问某些结果,则提取它们:

rows = cursor.fetchone()

要么

rows = cursor.fetchmany()

现在说,我不检索所有行,而是决定执行另一个查询,那么先前的结果将如何处理?是他们的开销。

另外,我应该为每种命令形式创建一个游标,然后以某种方式连续地将其重复用于那些相同的命令吗?我头上的psycopg2可以以某种方式优化多次执行但具有不同值的命令,这是值得吗?

谢谢

大佬总结

以上是大佬教程为你收集整理的游标如何在Python的DB-API中工作?全部内容,希望文章能够帮你解决游标如何在Python的DB-API中工作?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。