Düz metinle CREATE INDEX
, tablo yazma işlemleri için kilitlenir, ancak okumalar için kilitlenmez.
CREATE INDEX CONCURRENTLY
Yazma kilitlerinden de kaçınmak için kullanın .
Gönderen üzerine PostgreSQL docsCREATE INDEX
:
Bu seçenek kullanıldığında, PostgreSQL endeksi tabloya eşzamanlı ekleme, güncelleme veya silmeyi önleyen kilitler almadan oluşturur; oysa standart bir dizin derlemesi, bitene kadar tablodaki yazımları kilitler (ancak okur). Bkz - Bu seçeneği kullanırken dikkat edilecek birkaç uyarılar vardır Eşzamanlı Yapı Dizinleri'ni .
Ve daha spesifik olarak ( @ypercube yorumladı gibi ):
PostgreSQL, yazma işlemlerini kilitlemeden bina dizinlerini destekler . Bu yöntem, CONCURRENTLY
seçeneği belirtilerek çağrılır CREATE INDEX
. Bu seçenek kullanıldığında, PostgreSQL tablonun iki taramasını yapmalı ve buna ek olarak, dizini sonlandırmak için potansiyel olarak kullanabilen tüm işlemleri beklemelidir. Bu nedenle, bu yöntem standart bir dizin derlemesinden daha fazla toplam çalışma gerektirir ve tamamlanması çok daha uzun sürer. Ancak, dizin oluşturulurken normal işlemlerin devam etmesine izin verdiği için, bu yöntem bir üretim ortamına yeni dizinler eklemek için kullanışlıdır.
Cesur vurgu benim.