PostgreSQL Tablespace Nedir?

PostgreSQL Tablespace Nedir?

 

Tablespace, veritabanı nesneleri için farklı saklama yerleri belirtmekte faydalıdır.

Tablespace neden gereklidir ?

Kurulum yaparken farklı bir dizin belirtmediyseniz ve default dizin dolduysa ve hiçbir şekilde dizini büyütülemiyorsa bu sizin veritabanınızın çalışmasını engeller fakat farklı bir disk de tablespace oluşturulup sistem yeniden yapılandırılırsa sorun olmayacaktır.

Veritabanlarınızın bazıları hızlı çalışması gerekebilir ve bunları ssd dizinine yerleştirerek performansı artırabilirsiniz ya da arşivleme yapılan uygulama da eski dataları yavaş disk üzerinde tablespace oluşturarak  maliyeti düşürebilirsiniz.

Tablespace kavramı MSSQL de ki filegroup mantığına benzemektedir fakat MSSQL den farklı olarak tek filegroup’un içinde tek file bulunuyor birden fazla file oluşturulamıyor.

Veritabanları, şemalar, tablolar, indexler ve sequenceler tablespaceler içinde oluşturlabilir. Bunu yapmak için o tablespace üzerinde CREATE

yetkisi olan kullanıcı ilgili komuta tablespace adını bir parametre olarak vermemiz gerekmektedir.

Bu kadar açıklamadan sonra örneğe geçelim

Tablespace için dizinimizi oluşturuyoruz.

mkdir /ssd/data;

Dizin oluşturulduktan sonra postgres kullanıcısına o dizinde yetki veriyoruz.

CREATE TABLESPACE sdds LOCATION '/ssd/data';

Tablespace de oluşturulduktan sonra aşağıdaki komut yardımı ile kontrol edelim;

select*from pg_tablespace;

  spcname   | spcowner | spcacl | spcoptions

————+———-+——–+————

pg_default |       10 |        |

pg_global   |       10 |        |
f                   |       10 |        |

 

Yukarıda görüldüğü gibi tablespace oluşturduk.

Oluşturulan Tablespace’i default yapmak için ‘Default Tablespace’i Değiştirmek ‘ isimli yazıma göz atabilirsiniz.

 

Loading