PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Untuk menjatuhkan indeks dengan psycopg2 berlaku sebelum atau sesudah komit?

commit hanya melakukan transaksi yang sedang berlangsung yang sedang berlangsung ke database Anda.

Apa yang sebenarnya Anda tanyakan apakah menjatuhkan indeks dan kemudian menyalin dalam transaksi yang sama akan memberikan percepatan yang sama seperti penurunan indeks pertama kali dalam satu transaksi dan kemudian menyalin data dalam transaksi baru.

Kutipan langsung dari dokumen mengatakan bahwa:

Bagian yang ditebalkan secara tidak langsung memberi tahu bahwa Anda harus melakukan setelah menjatuhkan indeks, karena menjatuhkan indeks tanpa melakukan (menyelesaikan transaksi) seharusnya tidak berdampak pada pengguna database lainnya.

Jadi solusinya harus seperti ini:

jatuhkan indeks Anda, komit, salin data, buat indeks baru, dan komit lagi.

Perhatikan bahwa saat Anda membagi transaksi menjadi dua transaksi, Anda kehilangan atomitas. Yaitu. mungkin indeks Anda dijatuhkan, tetapi tidak ada data yang disalin (jika daya atau jaringan misalnya hilang selama transaksi penyalinan) dan indeks tidak akan pernah dibuat ulang.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Width_Bucket() Bekerja di PostgreSQL

  2. docker-compose rails rake db:reset gagal, tidak dapat menghapus database yang sedang dibuka

  3. Apa perintah untuk menemukan skrip fungsi yang ada di postgresql?

  4. PDO dapatkan pecahan detik dari Postgres

  5. Tidak dapat PILIH dari klausa UPDATE RETURNING di postgres