sql >> Database teknologi >  >> RDS >> PostgreSQL

At droppe et indeks med psycopg2 træder i kraft før eller efter commit?

commit begår blot enhver igangværende transaktion til din database.

Det du faktisk spørger om, om at slette indekser og derefter kopiere inden for den samme transaktion vil give samme hastighed som først at droppe indekser i en transaktion og derefter kopiere data i en ny transaktion.

Det direkte citat fra docs siger at:

Den fed skrift fortæller indirekte, at du skal commit efter at have droppet indekserne, da at droppe indekser uden at committe (afslutte transaktionen) ikke burde have nogen indflydelse på andre brugere af databasen.

Så løsningen burde være noget i denne retning:

slip dine indekser, commit, kopier dataene, opret nye indekser og commit igen.

Bemærk, at når du deler din transaktion op i to transaktioner, mister du atomicitet. dvs. det er muligt, at dine indekser slettes, men ingen data kopieres (hvis strøm eller netværk for eksempel går tabt under kopieringstransaktionen), og indekserne ville aldrig blive genskabt.




  1. Skaber fremmøde i laravel

  2. Optimeringstærskler – gruppering og aggregering af data, del 4

  3. =) Operatør for begyndere

  4. Hvordan beregner man størrelse ud fra min MySQL-forespørgsel?