Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

489
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda