PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Usunięcie indeksu za pomocą psycopg2 działa przed lub po zatwierdzeniu?

commit po prostu zatwierdza każdą trwającą transakcję w Twojej bazie danych.

O co tak naprawdę pytasz, czy upuszczenie indeksów, a następnie skopiowanie w ramach tej samej transakcji zapewni takie samo przyspieszenie, jak upuszczenie indeksów w jednej transakcji, a następnie skopiowanie danych w nowej transakcji.

Bezpośredni cytat z dokumentacji mówi, że:

Pogrubiona część pośrednio mówi, że należy zatwierdzić po upuszczeniu indeksów, ponieważ upuszczanie indeksów bez zatwierdzenia (zakończenia transakcji) nie powinno mieć żadnego wpływu na innych użytkowników bazy danych.

Rozwiązaniem powinno być więc coś w stylu:

upuść indeksy, zatwierdź, skopiuj dane, utwórz nowe indeksy i zatwierdź ponownie.

Pamiętaj, że dzieląc transakcję na dwie transakcje, tracisz atomowość. Tj. możliwe, że twoje indeksy zostaną usunięte, ale żadne dane nie zostaną skopiowane (jeśli na przykład zostanie utracone zasilanie lub sieć podczas kopiowania), a indeksy nigdy nie zostaną odtworzone.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Polecenie rozmiaru bazy danych Postgres

  2. Postgres:zdefiniować domyślną wartość dla niepowodzeń CAST?

  3. Masowe ładowanie do PostgreSQL ze zdalnego klienta

  4. Jak mogę połączyć arkusz kalkulacyjny Google z PostgreSQL?

  5. Rola Postgresql Docker nie istnieje