Postgresql Tablo: Logged-Unlogged Özelliği
Postgresql'de tablo üzerinde logged unlogged özelliğini açıp kapatabilirsiniz.
Tablo ‘unlogged’ yapıldığında dml işlemleri hızlanır çünkü wal dosyasına transection loglarını yazmakla uğraşılmaz fakat veritabanı beklenmedik bir şekilde kapandığında bu tabloya erişilemez tamamen kaybedilir. Veri tabanı olağan bir şekilde kapatılıp açıldığında herhangi bir sorun yaşanmaz ve tabloya erişim sağlanabilir.
Tablo ‘logged’ olarak default değerinde bırakıldığında dml işlemleri daha uzun sürmektedir. Bunun sebebi ise; wal dosyasına transectionların yazılması gerekmektedir. Bu durum aşağıdaki şekilde örneklendirilebilir:
‘Unlogged’ diğer tablo ise ‘logged’ şeklinde iki adet tablo oluşturulur.
eng=# create table deneme1 (id integer);
CREATE TABLE
eng=# create unlogged table deneme2 (id integer);
CREATE TABLE
Tablolardan ‘Logged’ olan 10M kayıt insert edilir (Aşağıda da belirtildiği üzere 25 saniye sürmektedir).
eng=# insert into deneme1 (select generate_series(1,10000000));
INSERT 0 10000000
Time: 25742.589 ms (00:25.743)
Tablolardan ‘Unlogged’ olan 10M kayıt insert edilir (Aşağıda da belirtildiği üzere 9 saniye sürmektedir).
eng=#
eng=# insert into deneme2 (select generate_series(1,10000000));
INSERT 0 10000000
Time: 9006.489 ms (00:09.006)
Bir tablonun ‘logged’ veya ‘unlogged’ özelliğini aşağıdaki şekilde değiştirilebilir.
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)
Yazar: Engin Yılmaz