- 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
ANALYZE komutunun 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
IN koşulu içeren sorguların performansı iyileştirildi
- BRIN dizinlerinde paralel derleme destekleniyor
- Sorgu planlama için çeşitli iyileştirmeler içeriyor
NOT NULL kısıtları için optimizasyon
- Ortak tablo ifadelerinin (
WITH sorguları) işlenmesinde iyileştirme
bit_count fonksiyonunda 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_TABLE ile 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
jsonpath ifadeleri eklendi
MERGE komutuna RETURNING bölümü ve view güncelleme yeteneği eklendi
- Toplu yükleme ve veri dışa aktarma işlevleri geliştirildi
COPY komutuyla 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
COPY performansı iyileştirildi
- Ekleme hatası oluşsa bile içe aktarmayı sürdürebilen
ON_ERROR seç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_fdw kullanılarak EXISTS ve IN alt 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_ASCII yerine 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
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_createsubscriber komut 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
sslnegotiation adlı yeni bir TLS seçeneği eklendi
- Bakım görevlerini gerçekleştirme yetkisi veren ön tanımlı
pg_maintain rolü eklendi
- PostgreSQL ile gelen yedekleme aracı
pg_basebackup artık incremental backup destekliyor ve tam yedeği yeniden oluşturmak için pg_combinebackup aracı eklendi
pg_dump, dump dosyası oluştururken hangi nesnelerin dahil edileceğini seçmeye yarayan yeni --filter seç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österiyor
SERIALIZE ve MEMORY adlı 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_events sistem görünümü eklendi; pg_stat_activity ile 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