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 は、何度も実行されるが異なる値を持つコマンドを何らかの方法で最適化できると思いますが、どのように価値がありますか?
どうも