pg_pathman — Optimize Edilmiş Bölümleme Mekanizması
pg_pathman, optimize edilmiş bir bölümleme mekanizması sağlayan ve bölümleri yönetme işlevlerine sahip bir modüldür. Bu modül, büyük tabloları daha küçük parçalara ayırarak performansı artırmayı hedefler. pg_pathman, PostgreSQL'in yerleşik bölümleme özelliklerine alternatif olarak geliştirilmiştir ve özellikle PostgreSQL 9.5 ve 10 sürümlerinde bölümleme desteği sınırlıyken kullanılmıştır.
Önemli Not: Postgres Pro 12 ve sonraki sürümlerde, pg_pathman kullanımı önerilmemektedir. Bunun yerine, PostgreSQL'in yerleşik bölümleme özelliklerini kullanmanız önerilir. Postgres Pro 12 ve sonraki sürümlerde, yerleşik bölümleme özellikleri pg_pathman'ın sağladığı performans avantajlarını sağlar.
Genel Bakış
pg_pathman, büyük ve dağıtılmış veritabanları için optimize edilmiş bir bölümleme çözümü sunan bir Postgres Pro uzantısıdır. Bu modül, büyük veritabanlarını kesintisiz olarak bölümlendirmenize, bölümlenmiş tablolar için sorgu yürütme hızını artırmanıza ve mevcut bölümleri yönetip yeni bölümler eklemenize olanak tanır. pg_pathman, PostgreSQL'in yerleşik bölümleme özelliklerine göre daha esnek ve performanslı bir çözüm sunar.
Özellikler
pg_pathman modülü aşağıdaki özellikleri sağlar:
- Bölümleme Şemaları: pg_pathman, RANGE ve HASH bölümleme şemalarını destekler.
- İfade ile Bölümleme: Tek bir skaler değer döndüren ifadelerle bölümleme yapabilirsiniz. Bu ifadeler, tablo sütunlarını referans alabilir veya bir veya daha fazla sütun değerine dayalı olarak bölümleme anahtarını hesaplayabilir.
- Bileşik Anahtar ile Bölümleme: İki veya daha fazla değerden oluşan bileşik anahtarlarla RANGE bölümleme yapabilirsiniz.
- Çok Düzeyli Bölümleme: Hem HASH hem de RANGE bölümleme stratejileri için çok düzeyli bölümleme desteklenir.
- <strong>Otomatik ve Manuel Bölüm Yönetimi:</strong> Hem otomatik hem de manuel olarak bölümleri yönetebilirsiniz.
- <strong>Geniş Veri Türü Desteği:</strong> Tamsayı, kayan nokta, tarih ve diğer türler dahil olmak üzere çeşitli veri türlerini destekler.
- Etkili Sorgu Planlaması: Bölümlenmiş tablolar için JOIN'ler, alt sorgular vb. için etkili sorgu planlaması sağlar.
- <strong>Özel Plan Düğümleri:</strong> RuntimeAppend ve RuntimeMergeAppend özel plan düğümleri ile çalışma zamanında bölümleri seçer.
- Ekleme Tetikleyicileri İçin Alternatif: PartitionFilter, INSERT tetikleyicileri için verimli bir alternatif sunar.
- Otomatik Bölüm Oluşturma: Yeni eklenen veriler için otomatik bölüm oluşturma (yalnızca RANGE bölümleme için).
- Geliştirilmiş COPY FROM Deyimi: Satırları doğrudan bölümlere ekleyebilen geliştirilmiş COPY FROM deyimi.
- UPDATE Tetikleyicileri: Kutudan çıktığı gibi UPDATE tetikleyicileri oluşturur (bu da özel düğümlerle değiştirilecektir).
- <strong>Kullanıcı Tanımlı Geri Çağırmalar:</strong> Bölüm oluşturma olaylarını işlemek için kullanıcı tanımlı geri çağırmalar.
- <strong>Engellemesiz Eşzamanlı Tablo Bölümleme:</strong> Engellemesiz eşzamanlı tablo bölümleme desteği.
- FDW Desteği: Yabancı bölümler için FDW desteği.
- <strong>Çeşitli GUC Anahtarları ve Yapılandırma Ayarları:</strong> Çeşitli GUC anahtarları ve yapılandırma ayarları ile esneklik sağlar.
Uyumluluk
pg_pathman, aşağıdaki PostgreSQL ve Postgres Pro sürümleriyle uyumludur:
- PostgreSQL 9.5, 9.6, 10
- Postgres Pro Standard 9.5, 9.6
- Postgres Pro Enterprise
Not: Postgres Pro 12 ve sonraki sürümlerde, pg_pathman kullanımı önerilmemektedir. Bunun yerine, PostgreSQL'in yerleşik bölümleme özelliklerini kullanmanız önerilir.
Kurulum
pg_pathman modülünü kullanmak için, önce modülü yüklemelisiniz. Modül, PostgreSQL'in shared_preload_libraries parametresine eklenmelidir:
shared_preload_libraries = 'pg_pathman'
Bu parametreyi postgresql.conf dosyasında değiştirdikten sonra, PostgreSQL sunucusunu yeniden başlatmanız gerekir.
Sunucu başlatıldıktan sonra, modülü veritabanında etkinleştirmek için aşağıdaki komutu çalıştırın:
CREATE EXTENSION pg_pathman;
Not: CREATE EXTENSION komutu hakkında daha fazla bilgi için PostgreSQL dokümantasyonuna bakın.
Modül, her veritabanında ayrı ayrı etkinleştirilmelidir. Modülü kullanmak istediğiniz her veritabanında CREATE EXTENSION komutunu çalıştırın.
Kullanım
pg_pathman modülü etkinleştirildikten sonra, bölümleme işlemlerini gerçekleştirmek için çeşitli fonksiyonlar kullanabilirsiniz. Modül, RANGE ve HASH bölümleme şemalarını destekler.
Fonksiyonlar
pg_pathman modülü, bölümleme işlemlerini gerçekleştirmek için çeşitli fonksiyonlar sağlar. Bu fonksiyonlar, bölüm oluşturma, bölüm yönetimi ve bölümleme yapılandırması için kullanılır.
Yapılandırma
pg_pathman modülü, çeşitli yapılandırma parametreleri ile özelleştirilebilir. Bu parametreler postgresql.conf dosyasında veya ALTER SYSTEM komutu ile ayarlanabilir.
Örnekler
pg_pathman modülünün kullanımına ilişkin örnekler için, Postgres Pro dokümantasyonuna bakabilirsiniz.