sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Eliminar un índice con psycopg2 tiene efecto antes o después de la confirmación?

commit simplemente confirma cualquier transacción en curso en su base de datos.

Lo que realmente está preguntando es si eliminar índices y luego copiarlos dentro de la misma transacción proporcionará la misma aceleración que primero eliminar índices en una transacción y luego copiar datos en una nueva transacción.

La cita directa de docs dice que:

La parte en negrita indica indirectamente que debe confirmar después de descartar los índices, ya que descartar índices sin confirmar (completar la transacción) no debería tener ningún impacto en otros usuarios de la base de datos.

Así que la solución debería ser algo así:

suelte sus índices, confirme, copie los datos, cree nuevos índices y confirme nuevamente.

Tenga en cuenta que a medida que divide su transacción en dos transacciones, pierde atomicidad. Es decir. es posible que sus índices se eliminen, pero no se copien datos (si se pierde la energía o la red, por ejemplo, durante la transacción de copia) y los índices nunca se volverán a crear.