PostgreSQL UNLOGGED TABLE Nedir?
PostgreSQL UNLOGGED TABLE ,PostgreSQL de 9.1 sürümünde hayatımıza giren yazma hızını önemli ölçüde arttıran PostgreSQL özelliğidir.
PostgreSQL çoğu durumda verileri korur ve ani bir durumda kapansa bile verileriniz güvenli bir şekilde korunur.PostgreSQL WAL kullanarak tabloda her değişimi izler . Bu disk tarafında I\O ya sebep olmaktadır fakat bunun yapılması verilerimizi güvenli bir şekilde tutulmasını sağlamaktadır.
UNLOGGED Tablolar genellikle yazma hızı olarak performanslıdır fakat WAL e normal tablolar gibi yazılmadığından dolayı data kaybetme olasılığınız yüksektir.
UNLOGGED Tabloları bulk işlemlerde, kolaylıkla yeniden oluşturulabilecek verilerde işinize yarabilir fakat ani bir kapanmada verileriniz kaybolabilir.
Örnek kullanımı aşağıdaki gibidir.
CREATE UNLOGGED TABLE tablo_adi( kolon_ismi veritipi);
CREATE UNLOGGED TABLE unloggedtabled1(id int, isim text);
Mevcut tabloyu unlogged olarak değiştirmek için aşağıdaki komuttan faydalanabilirsiniz.
ALTER TABLE tablo_adi SET UNLOGGED;
Unlogged olan ve normal olan tablolar arasındaki farkı görmek için örnek yapalım.
İlk olarak tablomuzu oluşturalım.
create unlogged table unloggedtabled(kolon1 integer, kolon2 text, kolon3 boolean);
Tablomuzu oluşturduktan sonra 10 000 000 random veri insert edelim.
insert into unloggedtabled(kolon1,kolon2,kolon3)
select tt.id, chr((32+random()*94)::integer), random() < 0.01
from generate_series(1,10000000) as tt(id)
order by random();
10 000 000 random veri insert’ü aşağıda görüldüğü gibi 33 saniye 894 ms sürdü.
Unlogged olmayan tablo da insert işlemi yapalım. Unlogged olmadan düz tablomuzu oluşturalım.
create table tabled2(kolon1 integer, kolon2 text, kolon3 boolean);
Tablomuzu oluşturduktan sonra aynı verileri insert edelim.
Yukarıda görüldüğü gibi tabled2 tablomuz daha uzun sürmektedir.