Dengan polos CREATE INDEX
, tabel akan dikunci untuk penulisan tetapi tidak dibaca.
Gunakan CREATE INDEX CONCURRENTLY
untuk menghindari menulis kunci juga.
Dari dokumen PostgreSQL diCREATE INDEX
:
Ketika opsi ini digunakan, PostgreSQL akan membangun indeks tanpa mengambil kunci apa pun yang mencegah penyisipan, pembaruan, atau penghapusan bersamaan di atas meja; sedangkan membangun indeks standar mengunci menulis (tetapi tidak membaca) di atas meja sampai selesai. Ada beberapa peringatan yang harus diperhatikan ketika menggunakan opsi ini - lihat Membangun Indeks Bersamaan .
Dan lebih khusus lagi (Seperti komentar @ypercube ):
PostgreSQL mendukung pembuatan indeks tanpa mengunci penulisan . Metode ini dipanggil dengan menentukan CONCURRENTLY
opsi CREATE INDEX
. Ketika opsi ini digunakan, PostgreSQL harus melakukan dua pemindaian tabel, dan di samping itu harus menunggu semua transaksi yang ada yang berpotensi menggunakan indeks untuk mengakhiri. Jadi metode ini membutuhkan lebih banyak pekerjaan daripada membangun indeks standar dan membutuhkan waktu lebih lama untuk menyelesaikannya. Namun, karena ini memungkinkan operasi normal untuk melanjutkan sementara indeks dibangun, metode ini berguna untuk menambahkan indeks baru di lingkungan produksi.
Penekanan berani saya.