Π Π΅Π»ΠΈΠ· Π‘Π£Π‘Π” PostgreSQL 13

ПослС Π³ΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° новая ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ° Π‘Π£Π‘Π” PostgreSQL 13. ОбновлСния для Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ пяти Π»Π΅Ρ‚ Π΄ΠΎ ноября 2025 Π³ΠΎΠ΄Π°.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°:

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° дСдупликация записСй Π² индСксах B-tree, позволившая ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запросов ΠΈ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ дискового пространства ΠΏΡ€ΠΈ индСксации записСй с ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ДСдупликация производится Ρ‡Π΅Ρ€Π΅Π· пСриодичСский запуск ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ слияниС Π³Ρ€ΡƒΠΏΠΏ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ ΠΈ Π·Π°ΠΌΠ΅Π½Ρƒ Π΄ΡƒΠ±Π»ΠΈΠΊΡ‚ΠΎΠ² Π½Π° ссылки Π½Π° ΠΎΠ΄Π½Ρƒ Ρ…Ρ€Π°Π½ΠΈΠΌΡƒΡŽ копию.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запросов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, сгруппированныС Π½Π°Π±ΠΎΡ€Ρ‹ (GROUPING SETS) ΠΈΠ»ΠΈ сСкционированныС (ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅) Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ связаны с использованиСм ΠΏΡ€ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ…ΡΡˆΠ΅ΠΉ вмСсто фактичСских Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ размСщСния всСх Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… запросов. ΠŸΡ€ΠΈ сСкционировании Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΎ число ситуаций, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сСкции ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ статистики, создаваСмой ΠΏΡ€ΠΈ использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «CREATE STATISTICS», для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ эффСктивности планирования запросов, содСрТащих условия «OR» ΠΈΠ»ΠΈ поиск Π² списках с использованиСм Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ «IN» ΠΈΠ»ΠΈ «ANY».
  • УскорСна чистка индСксов ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ VACUUM Π·Π° счёт распараллСливания сборки мусора Π² индСксах. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° «PARALLEL» администратор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ число ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ для VACUUM. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ инициирования автоматичСского выполнСния VACUUM послС вставки Π΄Π°Π½Π½Ρ‹Ρ….
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ сортировки, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, отсортированныС Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ этапС, для ускорСния сортировки Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… этапах ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запроса. Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ запросов прСдусмотрСна настройка «enable_incremental_sort«, которая Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ограничСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° слотов Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сохранСниС сСгмСнтов Π»ΠΎΠ³Π° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ записи (WAL) Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ всСми запасными сСрвСрами, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ. Π‘Π»ΠΎΡ‚Ρ‹ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ основному сСрвСру ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌ, Π΄Π°ΠΆΠ΅ Ссли запасной сСрвСр ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° max_slot_wal_keep_size Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ WAL-Ρ„Π°ΠΉΠ»ΠΎΠ² для прСдотвращСния исчСрпания мСста Π½Π° дискС.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° активности Π‘Π£Π‘Π”: Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ EXPLAIN обСспСчСн ΠΏΠΎΠΊΠ°Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ статистики ΠΏΠΎ использованию WAL-Π»ΠΎΠ³Π°; Π² pg_basebackup прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ состояниС выполнСния Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Ρ… бэкапов; Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ANALYZE Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° индикация прогрСсса выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая ΠΊΠΎΠΌΠ°Π½Π΄Π° pg_verifybackup для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ цСлостности Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ, создаваСмых ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pg_basebackup.
  • ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с JSON с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² jsonpath Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ datetime() для прСобразования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (строк ISO 8601 ΠΈ Ρ€ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ PostgreSQL). НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ конструкции «jsonb_path_query(‘[«2015-8-1», «2015-08-12»]’, ‘$[*] ? (@.datetime() < "2015-08-2".datetime())')" ΠΈ "jsonb_path_query_array('["12:30", "18:40"]', '$[*].datetime("HH24:MI")')".
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° встроСнная функция gen_random_uuid() для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² UUID v4.
  • Π’ систСмС сСкционирования Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° логичСской Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ «BEFORE»
    Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ строк.

  • Бинтаксис «FETCH FIRST» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ допускаСт использованиС выраТСния «WITH TIES», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² хвостС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π°, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ послС примСнСния «ORDER BY».
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° концСпция Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… довСрия Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ («trusted extension«), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€Π°Π² администратора Π‘Π£Π‘Π”. Бписок ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π’ число Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… довСрия Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ pgcrypto, tablefunc, hstore ΠΈ Ρ‚.ΠΏ.
  • Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† Foreign Data Wrapper (postgres_fdw) Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° основС сСртификатов. ΠŸΡ€ΠΈ использовании SCRAM-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ «ΠΏΡ€ΠΈΠ²ΡΠ·ΠΊΡƒ ΠΊΠ°Π½Π°Π»Π°» (channel binding).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru