12

reference documentation'a göre YALNIZCA OKUYUNUZ işlem bayrağı, DEFERRABLE işlemlerine izin vermekten başka yararlıdır? işlem de SERIALIZABLE ve SADECE OKUYUN sürecePostgreSQL, salt okunur işlemler için bazı performans en iyileştirmeleri çalıştırıyor mu?

SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY; 

DEFERRABLE işlem özelliği hiçbir etkisi olmaz. üçünün tümü de bir işlem için seçildiğinde, işlem ilk kez görüntüsünü alırken bloğu olabilir, daha sonra SERIALIZABLE işleminin normal ek yükü olmadan ve olmadan veya katkıda bulunma riski olmadan seri hale getirme hatası ile iptal edildi. Bu mod, uzun süren raporlar veya yedeklemeler için çok uygundur.

Veritabanı altyapısı salt okunur işlemler için başka optimizasyonlar çalıştırıyor mu?

+1

Anlayışım, okuma-yazma işlemlerinin bazı yükleri taşımasıdır, ancak aslında bir şey yazana kadar bu yükü üstlenmezsiniz. Diğer bir deyişle, performans açısından, bir "OKUYUN OKUYUN" işlemi, yalnızca okuma içeren bir "READ WRITE" işlemi ile aynı olmalıdır. Bu, Postgres'in XID atamasını işleme biçiminden kaynaklanmaktadır (bu konuyla ilgili bazı bilgiler (https://wiki.postgresql.org/wiki/Hint_Bits)). –

+0

@NickBarnes Benim de anlayışımla uyuşuyor. 'SADECE OKUYUN 'gerçekten bir güvenlik meselesidir. –

+0

Teşekkürler. Öyleyse ertelenmiş işlemler o zaman sadece en önemli optimizasyonlardır. –

cevap

5

soru yorumlarında Nick Barnes and Craig Ringer gelen yorumları Özetle:

  1. READ_ONLY bayrak mutlaka herhangi optimizasyon READ_ONLY bayrağını ayarlayarak ana parası sağlamaktır
  2. sağlamaz tuple değiştirilmeyecek
İlgili konular