PostgreSQL 14 DBMS sürümü

Bir yıllık geliştirme sürecinin ardından PostgreSQL 14 DBMS'nin yeni bir kararlı dalı yayınlandı. Yeni dal için güncellemeler Kasım 2026'ye kadar beş yıl içinde yayınlanacak.

Ana yenilikler:

  • Dizi benzeri ifadeler kullanılarak JSON verilerine erişim için destek eklendi: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE ayrıntılar['öznitelikler']['boyut'] = '"orta"';

    hstore türü tarafından sağlanan anahtar/değer verileri için benzer bir sözdizimi uygulanır. Bu sözdizimi başlangıçta evrensel bir çerçeve kullanılarak uygulandı ve gelecekte diğer türler için de kullanılabilecek. hstore türü için örnek: INSERT INTO mytable VALUES ('a=>b, c=>d'); mytable'dan h['a'] SEÇİN; GÜNCELLEME mytable SET h['c'] = 'yeni';

  • Aralıkları tanımlamaya yönelik tür ailesi, örtüşmeyen değer aralıklarından oluşan sıralı listeler belirlemenize olanak tanıyan yeni "çok aralıklı" türlerle genişletildi. Mevcut her aralık türüne ek olarak, kendi çoklu aralık türü de önerilmektedir; örneğin, "int4range" türü "int4multirange"e karşılık gelir ve "daterange" türü "datemultirange"e karşılık gelir. Yeni türlerin kullanılması, karmaşık aralık dizilerini işleyen sorguların tasarımını basitleştirir. SEÇ '{[3,7), [8,9)}'::int4multirange; SELECT sayı aralığı(sayı aralığı(1.0, 14.0), sayı aralığı(20.0, 25.0));
  • Çok sayıda bağlantıyı işleyen yüksek yüklü sistemlerin performansını artırmak için optimizasyonlar yapılmıştır. Bazı testlerde performansta iki kat artış gözlemleniyor.
  • B-ağacı indekslerinin verimliliği iyileştirildi ve tablolar sıklıkla güncellendiğinde indeks büyümesiyle ilgili sorun çözüldü.
  • İstemci tarafı (libpq düzeyinde uygulanan) isteklerin boru hattı iletimi modu için destek eklendi; bu, çok sayıda küçük yazma işleminin (INSERT/UPDATE/DELETE) gerçekleştirilmesiyle ilişkili veritabanı senaryolarını önemli ölçüde hızlandırmanıza olanak tanır. Bir önceki isteğin sonucunu beklemeden bir sonraki istek. Bu mod aynı zamanda uzun paket teslim gecikmeleri olan bağlantılarda çalışmayı hızlandırmaya da yardımcı olur.
  • Birden çok PostgreSQL sunucusunu içeren dağıtılmış yapılandırmalar için geliştirilmiş yetenekler. Mantıksal çoğaltmanın uygulanmasında artık yürütülmekte olan işlemleri akış modunda göndermek mümkün hale geliyor ve bu da büyük işlemlerin çoğaltma performansını önemli ölçüde artırabiliyor. Ayrıca mantıksal çoğaltma sırasında alınan verilerin mantıksal kodunun çözülmesi de optimize edilmiştir.
  • Harici tabloları bağlama mekanizması Yabancı Veri Sarmalayıcı (postgres_fdw), şu anda yalnızca diğer PostgreSQL sunucularına bağlanırken geçerli olan paralel sorgu işleme desteği ekledi. postgres_fdw ayrıca toplu modda harici tablolara veri ekleme desteği ve "IMPORT FOREIGN SCHEMA" direktifini belirterek bölümlenmiş tabloları içe aktarma yeteneği de ekler.
  • VAKUM işleminin (çöp toplama ve disk depolamanın paketlenmesi) uygulanmasında optimizasyonlar yapılmıştır. İşlem kimliği sarma koşulları oluşturulursa, gerekli olmayan temizleme işlemlerini atlayan bir acil durum temizleme modu eklendi. B-Tree formatındaki dizinleri işlerken oluşan ek yük azaltıldı. Veritabanının işleyişine ilişkin istatistiklerin toplandığı “ANALYZE” operasyonunun yürütülmesi önemli ölçüde hızlandırıldı.
  • Metin blokları veya geometrik bilgiler gibi büyük verilerin depolanmasından sorumlu olan TOAST sisteminde kullanılan sıkıştırma yöntemini yapılandırma yeteneği eklendi. TOAST, pglz sıkıştırma yöntemine ek olarak artık LZ4 algoritmasını da kullanabilir.
  • DBMS'nin çalışmasını izlemeye yönelik araçlar genişletildi. COPY komutlarının ilerlemesini (pg_stat_progress_copy), çoğaltma yuvalarıyla ilgili istatistikleri (pg_stat_replication_slots) ve WAL işlem günlüğüyle ilgili etkinliği (pg_stat_wal) izlemek için görünümler eklendi. pg_stat_activity ve EXPLAIN VERBOSE gibi çeşitli alt sistemlerin her istek için benzersiz bir tanımlayıcı atayarak istekleri izlemesini sağlayan compute_query_id işlevi eklendi.
  • Sorguların paralel işlenmesini iyileştirmek ve sıralı kayıt tarama işlemlerinin eş zamanlı yürütülmesi, PL/pgSQL'de "RETURN QUERY" komutu kullanılarak sorguların paralel yürütülmesi ve "Return QUERY" sorgularının paralel yürütülmesi performansını artırmak için sorgu planlayıcıya optimizasyonlar eklendi. GERÇEKLEŞTİRİLMİŞ GÖRÜNÜMÜ YENİLE”. Döngüsel iç içe birleştirmelerin (birleştirme) performansını artırmak için ek önbelleğe alma desteği uygulandı.
  • Gelişmiş istatistikler artık ifadeleri optimize etmek için kullanılabilir ve artımlı sıralama artık pencere işlevlerini optimize etmek için kullanılabilir.
  • İşlemleri kod blokları halinde yönetmenize olanak tanıyan saklı prosedürler artık "OUT" parametrelerini kullanarak dönüş verilerinin tanımlanmasını desteklemektedir.
  • Zaman damgası değerlerini belirli bir aralığa göre yuvarlamak için date_bin işlevi eklendi. SELECT date_bin('15 dakika', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Özyinelemeli Ortak Tablo İfadelerinde (CTE) döngüleri sıralamayı ve tanımlamayı kolaylaştırmak için SQL standardında tanımlanan SEARCH ve CYCLE ifadeleri eklendi. ÖZYİNELİ search_tree(id, link, data) AS ( SELECT t.id, t.link, t.data FROM ağaç t UNION ALL SELECT t.id, t.link, t.data FROM ağaç t, search_tree st WHERE t. id = st.link ) İLK id SET'E GÖRE DERİNLİK ARA ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • psql yardımcı programında, sekmeli komutların otomatik tamamlanması iyileştirildi, "\df" komutuna işlev bağımsız değişkenlerini görüntüleme yeteneği eklendi ve görüntülenen istatistikler "\dX" komutunu içerecek şekilde genişletildi.
  • Kullanıcılara salt okuma veya salt yazma ayrıcalıkları atamak mümkündür. Ayrıcalıklar, pg_read_all_data ve pg_write_all_data önceden tanımlanmış rolleri kullanılarak ayrı ayrı tablolarda, görünümlerde ve şemalarda ayarlanabilir. GRANT pg_read_all_data TO user1;
  • Yeni kurulumlarda varsayılan olarak md256 yerine SCRAM-SHA-5 kullanılarak parola kimlik doğrulaması yapılır (postgresql.conf oluşturulurken "password_encryption" parametresi artık 'scram-sha-256' olarak ayarlanmıştır).

Kaynak: opennet.ru

Yorum ekle