Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

488
Vistas
¿Cuál es la ventaja de usar varios cursores en psycopg2 para consultas de PostgreSQL?

¿Cuál es la diferencia entre usar un solo cursor en psycopg2 para realizar todas sus consultas y usar varios cursores?

Es decir, digo que hago esto:

 import psycopg2 as pg2 con = psycopg2.connect(...) cur = con.cursor() cur.execute(...) .... .... cur.execute(...) ...

y cada vez que deseo ejecutar una consulta a partir de entonces, uso el mismo cursor cur .

Alternativamente, podría hacer esto cada vez que quiera consultar mi base de datos:

 with cur as con.cursor(): cur.execute(...)

En cuyo caso, mi cursor cur se eliminaría después de cada uso.

¿Qué método es mejor? ¿Tiene uno ventaja sobre otro? ¿Es uno más rápido que el otro? En términos más generales, ¿por qué se necesitan varios cursores para una conexión?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Las dos opciones son comparables; siempre puede comparar ambos para ver si hay una diferencia significativa, pero los cursores psycopg2 son bastante livianos (no representan un cursor DECLARE d real del lado del servidor, a menos que pase un argumento de name ) y no esperaría nada sustancial desaceleración de cualquier ruta.

La razón por la que psycopg2 tiene cursores es doble. El primero es poder representar cursores del lado del servidor para situaciones en las que el conjunto de resultados es más grande que la memoria y no se puede recuperar de la base de datos de una sola vez; en este caso, el cursor sirve como interfaz del lado del cliente para interactuar con el cursor del lado del servidor.

La segunda es que los cursores psycopg2 no son seguros para subprocesos; un objeto de conexión puede ser utilizado libremente por cualquier subproceso, pero cada cursor debe ser utilizado por un subproceso como máximo. Tener un cursor por subproceso permite que las aplicaciones multiproceso accedan a la base de datos desde cualquier subproceso, mientras comparten la misma conexión.

Consulte los documentos de uso de psycopg2 en cursores del lado del servidor y seguridad de subprocesos y procesos para obtener más detalles.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda