sql >> Databasteknik >  >> RDS >> PostgreSQL

Att ta bort ett index med psycopg2 träder i kraft före eller efter commit?

commit begår bara alla pågående transaktioner till din databas.

Vad du faktiskt frågar om huruvida släppa index och sedan kopiera inom samma transaktion kommer att ge samma hastighet som att först släppa index i en transaktion och sedan kopiera data i en ny transaktion.

Det direkta citatet från docs säger att:

Den fetstilade delen talar indirekt om att du ska commit efter att du har släppt indexen, eftersom att släppa index utan att commit (slutföra transaktionen) inte borde ha någon inverkan på andra användare av databasen.

Så lösningen borde vara något i den här stilen:

släpp dina index, commit, kopiera data, skapa nya index och commit igen.

Observera att när du delar upp din transaktion i två transaktioner, förlorar du atomicitet. d.v.s. Det är möjligt att dina index tappas, men ingen data kopieras (om ström eller nätverk till exempel går förlorat under kopieringstransaktionen) och indexen skulle aldrig återskapas.




  1. MySQL datumskillnad

  2. Hur får jag MySQL att använda ett INDEX för visningsfråga?

  3. MySQL-syntaxfel

  4. Mysql välj och visa två kolumner