PostgreSQL 17 yayımlandı
(postgresql.org)- PostgreSQL 17; önemli performans artışları, bellek yönetimi iyileştirmeleri, depolama erişimi optimizasyonu, yüksek eşzamanlı iş yüklerinde iyileştirmeler, toplu yükleme ve dışa aktarma hızlarında artış ile dizin sorgusu yürütmesinde geliştirmeler içeriyor
Sistem genelinde performans artışları
- Normal çalışma için kritik olan PostgreSQL vacuum sürecinin dahili bellek yapısı iyileştirildi ve bellek kullanımı 20 kata kadar azaltıldı
- vacuum hızı artırılırken paylaşılan kaynak kullanımı azaltıldı; böylece iş yükleri için daha fazla kaynak kullanılabiliyor
- I/O katmanının performansı sürekli olarak iyileştirildi
- Write-Ahead Log (WAL) işleme iyileştirmeleri sayesinde yüksek eşzamanlı iş yüklerinde yazma throughput'u 2 kata kadar artıyor
- Yeni streaming I/O arayüzü, sıralı taramaların (bir tablodaki tüm verilerin okunması) hızını ve
ANALYZEkomutunun yürütme planı istatistiklerini güncelleme hızını artırıyor
- Performans iyileştirmeleri sorgu yürütmeye de genişletildi
- B-tree dizinleriyle (PostgreSQL'in varsayılan dizin yöntemi) kullanılan
INkoşulu içeren sorguların performansı iyileştirildi - BRIN dizinlerinde paralel derleme destekleniyor
- B-tree dizinleriyle (PostgreSQL'in varsayılan dizin yöntemi) kullanılan
- Sorgu planlama için çeşitli iyileştirmeler içeriyor
NOT NULLkısıtları için optimizasyon- Ortak tablo ifadelerinin (
WITHsorguları) işlenmesinde iyileştirme
bit_countfonksiyonunda AVX-512 kullanımı gibi hesaplama hızlandırma için SIMD (Single Instruction/Multiple Data) desteği genişletildi
Güçlü geliştirici deneyimi daha da genişletildi
- PostgreSQL, JSON desteği ekleyen ilk ilişkisel veritabanıydı (2012)
- PostgreSQL 17, SQL/JSON standardı uygulamasını daha da genişletiyor
JSON_TABLEile JSON verileri standart PostgreSQL tablolarına dönüştürülebiliyor- SQL/JSON constructor'ları (
JSON,JSON_SCALAR,JSON_SERIALIZE) ve sorgu fonksiyonları (JSON_EXISTS,JSON_QUERY,JSON_VALUE) destekleniyor - JSON verilerini PostgreSQL'in yerel veri tiplerine (sayı, boolean, string, tarih/saat) dönüştürmeye odaklanan
jsonpathifadeleri eklendi
MERGEkomutunaRETURNINGbölümü ve view güncelleme yeteneği eklendi- Toplu yükleme ve veri dışa aktarma işlevleri geliştirildi
COPYkomutuyla büyük satırlar dışa aktarılırken 2 kata kadar performans artışı sağlanıyor- Kaynak ve hedef encoding aynı olduğunda
COPYperformansı iyileştirildi - Ekleme hatası oluşsa bile içe aktarmayı sürdürebilen
ON_ERRORseçeneği eklendi
- Partition'lar ve uzak PostgreSQL instance'larına dağılmış verileri yönetme yetenekleri genişletildi
- Partitioned table'larda ID sütunları ve exclusion constraint kullanımı destekleniyor
postgres_fdwkullanılarakEXISTSveINalt sorguları uzak sunucuya push down edilebiliyor
- Yerleşik, platformdan bağımsız ve değişmez bir collation provider içeriyor
- C collation'a benzer sıralama semantiği sunuyor ancak
SQL_ASCIIyerine UTF-8 encoding kullanıyor - Bu yeni collation provider kullanıldığında, metin tabanlı sorgular PostgreSQL'in çalıştığı konumdan bağımsız olarak aynı sıralama sonucunu döndürüyor
- C collation'a benzer sıralama semantiği sunuyor ancak
Yüksek erişilebilirlik ve ana sürüm yükseltmeleri için mantıksal çoğaltma iyileştirmeleri
- Mantıksal çoğaltma, verileri gerçek zamanlı olarak stream etmek için kullanılıyor
- Önceki sürümlerde ana sürüm yükseltmeleri sırasında mantıksal çoğaltma slot'larının silinmesi gerekiyordu; bu da yükseltme sonrasında abonelere verilerin yeniden senkronize edilmesini gerektiriyordu
- PostgreSQL 17 ile birlikte mantıksal çoğaltma slot'larını silme gerekliliği ortadan kalktı ve yükseltme süreci basitleşti
- Mantıksal çoğaltma için failover kontrol özelliği içeriyor; böylece yüksek erişilebilirlik ortamlarında daha dayanıklı dağıtımlar yapılabiliyor
pg_createsubscriberkomut satırı aracı tanıtıldı; bu araç fiziksel bir replikayı yeni bir mantıksal replikaya dönüştürebiliyor
Güvenlik ve operasyon yönetimi için daha fazla seçenek
- PostgreSQL 17, kullanıcıların veritabanı sisteminin genel yaşam döngüsünü yönetme yöntemlerini daha da genişletiyor
- ALPN kullanılırken doğrudan TLS handshake yapılmasını sağlayan
sslnegotiationadlı yeni bir TLS seçeneği eklendi - Bakım görevlerini gerçekleştirme yetkisi veren ön tanımlı
pg_maintainrolü eklendi - PostgreSQL ile gelen yedekleme aracı
pg_basebackupartık incremental backup destekliyor ve tam yedeği yeniden oluşturmak içinpg_combinebackuparacı eklendi pg_dump, dump dosyası oluştururken hangi nesnelerin dahil edileceğini seçmeye yarayan yeni--filterseçeneğini içeriyor- İzleme ve analiz işlevleri geliştirildi
EXPLAIN, yerel I/O bloklarını okuma ve yazma için harcanan süreyi gösteriyorSERIALIZEveMEMORYadlı iki yeni seçenek eklendi: ağ üzerinden aktarım için veri dönüştürmeye harcanan süreyi ve kullanılan bellek miktarını görmekte yararlı
- Dizin temizleme ilerlemesi raporlanıyor
pg_wait_eventssistem görünümü eklendi;pg_stat_activityile birlikte kullanıldığında etkin oturumların neden beklediğine dair içgörü sağlıyor
1 yorum
Hacker News görüşleri
PostgreSQL 17'nin yeni sürümü için tebrikler ve çeşitli iyileştirmelerden bahsediliyor
pg_basebackupiçin artımlı yedekleme desteği vepg_combinebackuparacının eklenmesiJSON özelliklerinin kullanışlılığına dair görüşler
JSON_TABLE özelliğinin kullanım deneyimi paylaşılıyor
PostgreSQL 17'deki performans artışları ve UX iyileştirmelerinden bahsediliyor
Değişiklik günlüğü hakkında izlenim
Açık kaynak yazılıma güven sorunu nedeniyle Oracle'dan MSSQL'e geçme deneyimi paylaşılıyor
Postgres'in sürekli gelişimi için teşekkür ediliyor ve Incremental View Maintenance (IVM) eklentisinin resmî olarak desteklenmesi umuluyor
PostgreSQL için büyük sürüm yükseltme desteğine dair beklenti
Postgres'e sistem sürümlü tabloların gelmesi umuluyor
Postgres'te JSON entegrasyonunun gelişmesinin yeni web framework paradigmasını mümkün kılacağı bekleniyor