sql >> Databáze >  >> RDS >> PostgreSQL

Vypuštění indexu pomocí psycopg2 se projeví před nebo po odevzdání?

commit pouze potvrdí všechny probíhající transakce do vaší databáze.

Na co se vlastně ptáte, zda vypuštění indexů a následné kopírování v rámci stejné transakce zajistí stejné zrychlení jako první vypuštění indexů v jedné transakci a následné zkopírování dat v nové transakci.

Přímá citace z dokumentů říká, že:

Část zvýrazněná tučným písmem nepřímo říká, že byste měli provést potvrzení po zrušení indexů, protože zrušení indexů bez potvrzení (dokončení transakce) by nemělo mít žádný dopad na ostatní uživatele databáze.

Řešením by tedy mělo být něco v tomto smyslu:

zrušte své indexy, odevzdejte, zkopírujte data, vytvořte nové indexy a znovu potvrďte.

Všimněte si, že když svou transakci rozdělíte na dvě transakce, ztratíte atomicitu. Tj. je možné, že vaše indexy budou zrušeny, ale nezkopírují se žádná data (pokud dojde například během kopírování ke ztrátě napájení nebo sítě) a indexy by nikdy nebyly znovu vytvořeny.




  1. Jak mohu změnit velikost písmen pro každé písmeno v řetězci pomocí SQL?

  2. Jak najít datum 48 pracovních hodin kromě soboty, neděle a svátků v oracle

  3. Spustit MySQL Server jako službu (Win 8)

  4. Jak zálohovat / exportovat databázi MySQL pomocí PHP