pg_pathman

optimize edilmiş bir bölümleme mekanizması sağlayan ve bölümleri yönetme işlevlerine sahip bir modül

pg_pathman modülü, optimize edilmiş bir bölümleme mekanizması ve bölümleri yönetme işlevleri sağlar.

Uzantı aşağıdaki sürümlerle uyumludur:

Bölümleme, büyük bir tabloyu daha küçük parçalara bölmek anlamına gelir. Böyle bir tablodaki her satır, bölümleme anahtarına göre tek bir bölüme taşınır. PostgreSQL <= 10 tablo kalıtımı yoluyla bölümlemeyi destekler: her bölüm, CHECK CONSTRAINT ile bir alt tablo olarak oluşturulmalıdır. PostgreSQL 10 yerel bölümlemeyi sağlar. Esnekliklerine rağmen, bu yaklaşım planlayıcıyı kapsamlı bir arama yapmaya ve her bölümün plan içinde bulunup bulunmayacağını belirlemek için her bölümdeki kısıtlamaları kontrol etmeye zorlar. Çok sayıda bölüm, önemli planlama yüküne neden olabilir.

pg_pathman modülü, bölüm yönetim işlevleri ve bölümlerin yapısı hakkındaki bilgileri kullanan optimize edilmiş planlama mekanizması özelliklerine sahiptir. Bölümleme yapılandırmasını pathman_config tablosunda saklar; her satır, bölümlenmiş bir tablo için tek bir giriş içerir (ilişki adı, bölümleme sütunu ve türü). Başlatma aşamasında pg_pathman modülü, daha sonra plan oluşturma için kullanılan paylaşılan bellekte alt bölümler hakkında bazı bilgileri önbelleğe alır. Bir SELECT sorgusu yürütülmeden önce, pg_pathman ifadeleri aramak için koşul ağacını geçer.

Bölümleme türüne ve koşulun operatörüne göre, pg_pathman karşılık gelen bölümleri arar ve planı oluşturur. Şu anda pg_pathman iki bölümleme şemasını destekler:

  • RANGE - her bölüme atanan bölümleme anahtarı aralıklarını kullanarak satırları bölümlere eşler. Optimizasyon, ikili arama algoritması kullanılarak elde edilir;
  • HASH - genel bir hash fonksiyonu kullanarak satırları bölümlere eşler.

<strong>Özellik vurguları:</strong>

  • HASH ve RANGE bölümleme şemaları;
  • İfade ve bileşik anahtar ile bölümleme;
  • Hem otomatik hem de manuel bölüm yönetimi;
  • Tamsayı, kayan nokta, tarih ve diğer türler dahil olmak üzere alanlar için destek;
  • Bölümlenmiş tablolar için etkili sorgu planlaması (JOIN'ler, alt sorgular vb.);
  • RuntimeAppend & RuntimeMergeAppend özel plan düğümleri, çalışma zamanında bölümleri seçmek için;
  • PartitionFilter: INSERT tetikleyicileri için verimli bir drop-in değiştirme;
  • Yeni eklenen veriler için otomatik bölüm oluşturma (yalnızca RANGE bölümleme için);
  • Geliştirilmiş COPY FROM ifadesi, satırları doğrudan bölümlere ekleyebilir;
  • Kutudan çıktığı gibi UPDATE tetikleyicileri oluşturma (özel düğümlerle de değiştirilecektir);
  • Bölüm oluşturma olayı işleme için kullanıcı tanımlı geri çağırmalar;
  • Engellemesiz eşzamanlı tablo bölümleme;
  • FDW desteği (yabancı bölümler);
  • Çeşitli GUC anahtarları ve yapılandırılabilir ayarlar.

Kullanılabilirlik:

GitHub'da kaynak kodu

Açık kaynak kodlu projeyi GitHub'da görüntüleyin

GitHub'da Görüntüle

Dokümantasyon

Detaylı dokümantasyonu inceleyin

Dokümantasyonu Görüntüle

Ayrıca şununla birlikte gelir:

Postgres Pro Standard

Ticari DBMS çözümü

Detaylar

Postgres Pro Enterprise

Kurumsal DBMS çözümü

Detaylar