我一直在使用带有 RDBMS(MySQL 和 PostgreSQL)的 python,我注意到我真的不明白如何使用游标。
通常,他的脚本通过客户端 DB-API(如 psycopg2 或 MySQLdb)连接到数据库:
connection = psycopg2.connect(host='otherhost', etc)
然后创建一个游标:
cursor = connection.cursor()
然后可以发出查询和命令:
cursor.execute("SELECT * FROM etc")
现在查询的结果在哪里,我想知道?它在服务器上吗?还是在我的客户端上一点点在我的服务器上一点点?然后,如果我们需要访问一些结果,我们获取它们:
rows = cursor.fetchone()
或者
rows = cursor.fetchmany()
现在让我们说,我没有检索所有行,并决定执行另一个查询,以前的结果会发生什么?是他们的开销。
另外,我是否应该为每种形式的命令创建一个游标并以某种方式不断地将其重用于相同的命令?我负责 psycopg2 可以以某种方式优化执行多次但具有不同值的命令,它是如何以及值得的?
谢谢