">

Postgresql Tablo Logged Unlogged Özelliği

Postgresql Tablo Logged Unlogged Özelliği

Merhaba Arkadaşlar,

Postgresql'de tablo üzerinde logged unlogged özelliğini açıp kapatabilirsiniz.

Tabloyu unlogged yaparsanız  dml işlemleri hızlanır çünkü wal dosyasına transection loglarını yazmakla uğraşmaz fakan veritabanınız beklenmedik bir şekilde kapanırsa bu tabloya erişemezsiniz tamammen kaybedersiniz. Normal bir şekillde veritabanınızı kapatıp açarsanız herhangi bir sorun olmaz erişim sağlayabilirsiniz tabloya.

Tabloyu logged olarak default değerinde bırakırsanız dml işlemleri daha uzun sürer çünkü wal dosyasına transectionları yazmakla uğraşır.

Bu Durumu örnekleylim,

iİi adet tablo oluşturuyorum bir unlogged diğeri logged 

eng=# create table deneme1 (id integer);

CREATE TABLE

eng=# create unlogged table deneme2 (id integer);

CREATE TABLE

Logged olan tabloya 10M kayıt insert edelim. (aşağıda görüleceği üzere 25 saniye sürdü)

eng=# insert into deneme1 (select generate_series(1,10000000));

INSERT 0 10000000

Time: 25742.589 ms (00:25.743)

Unlogged tabloya 10M kayıt insert edelim.(Görüleceği üzere 9 saniyede insert etti.)
 
eng=# 
eng=# insert into deneme2 (select generate_series(1,10000000));
INSERT 0 10000000
Time: 9006.489 ms (00:09.006)
 
Tablonun logged, unlogged özelliğini aşağıdaki gibi değiştirebiliriz.
 
eng=# alter table deneme2 set logged ;
ALTER TABLE
Time: 36865.907 ms (00:36.866)
 
 
eng=# alter table deneme2 set unlogged ;
ALTER TABLE
Time: 14166.742 ms (00:14.167)
 
Bu arada bu tabloyu logged ve unlogged etmek access exclusive lock koyar, yani en ağır lockdır kimse bu komut çalışana kadar bu tabloda select dahi atamaz demektir. dikkat edilmesi gereken bir komuttur yani:)
 
Umarım faydalı olmuştur...
 
 
 
 

 

Yorumlar

Henüz yorum yapılmadı.

Yorum Yapın