大佬教程收集整理的这篇文章主要介绍了游标如何在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,请注明来意。