ืžื”ื“ื•ืจืช PostgreSQL 13 DBMS

ืœืื—ืจ ืฉื ื” ืฉืœ ืคื™ืชื•ื— ื™ืฆื ืœืื•ืจ ืกื ื™ืฃ ื™ืฆื™ื‘ ื—ื“ืฉ ืฉืœ DBMS ืคื•ืกื˜ื’ืจืกืœ 13. ืขื“ื›ื•ื ื™ื ืœืกื ื™ืฃ ื—ื“ืฉ ื™ื™ืฆื ืœืžืฉืš ื—ืžืฉ ืฉื ื™ื ืขื“ ื ื•ื‘ืžื‘ืจ 2025.

ื”ืขื™ืงืจื™ ื—ื™ื“ื•ืฉื™ื:

  • ืžื•ื˜ืžืข ืžื ื™ืขืช ื›ืคื™ืœื•ืช ืจืฉื•ืžื•ืช ื‘ืื™ื ื“ืงืกื™ื ืฉืœ B-tree, ืžื” ืฉืืคืฉืจ ืœืฉืคืจ ืืช ื‘ื™ืฆื•ืขื™ ื”ืฉืื™ืœืชื•ืช ื•ืœื”ืคื—ื™ืช ืืช ืฆืจื™ื›ืช ืฉื˜ื— ื”ื“ื™ืกืง ื‘ืขืช ื™ืฆื™ืจืช ืื™ื ื“ืงืก ืฉืœ ืจืฉื•ืžื•ืช ืขื ื ืชื•ื ื™ื ื›ืคื•ืœื™ื. ืžื ื™ืขืช ื›ืคื™ืœื•ื™ื•ืช ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ื”ืฉืงื” ืชืงื•ืคืชื™ืช ืฉืœ ืžื˜ืคืœ ื”ืžืžื–ื’ ืงื‘ื•ืฆื•ืช ืฉืœ ื˜ื•ืคืœื™ื ื—ื•ื–ืจื™ื ื•ืžื—ืœื™ืฃ ื›ืคื™ืœื•ื™ื•ืช ื‘ืงื™ืฉื•ืจื™ื ืœืขื•ืชืง ืื—ื“ ืžืื•ื—ืกืŸ.
  • ื‘ื™ืฆื•ืขื™ื ืžืฉื•ืคืจื™ื ืฉืœ ืฉืื™ืœืชื•ืช ื”ืžืฉืชืžืฉื•ืช ืคื•ื ืงืฆื™ื•ืช ืžืฆื˜ื‘ืจื•ืช, ืกื˜ื™ื ืžืงื•ื‘ืฆื™ื (ืงื‘ื•ืฆื•ืช ืงื‘ื•ืฆื•ืช) ืื• ืžื—ื•ืœืง ืฉื•ืœื—ื ื•ืช (ืžื—ื•ืœืงื™ื). ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื›ืจื•ื›ื•ืช ื‘ืฉื™ืžื•ืฉ ื‘-hash ื‘ืžืงื•ื ื‘ื ืชื•ื ื™ื ื‘ืคื•ืขืœ ื‘ืขืช ืฆื‘ื™ืจื”, ืžื” ืฉื ืžื ืข ืžื”ื›ื ืกืช ื›ืœ ื”ื ืชื•ื ื™ื ืœื–ื™ื›ืจื•ืŸ ื‘ืขืช โ€‹โ€‹ืขื™ื‘ื•ื“ ืฉืื™ืœืชื•ืช ื’ื“ื•ืœื•ืช. ื‘ืขืช ื—ืœื•ืงืช ืžื—ื™ืฆื•ืช, ื”ื•ืจื—ื‘ ืžืกืคืจ ื”ืžืฆื‘ื™ื ืฉื‘ื”ื ื ื™ืชืŸ ืœืžื—ื•ืง ืžื—ื™ืฆื•ืช ืื• ืœืžื–ื’ ืื•ืชืŸ.
  • ื ื•ืกืคื” ื™ื›ื•ืœืช ืฉื™ืžื•ืฉ ืกื˜ื˜ื™ืกื˜ื™ืงื” ืžืชืงื“ืžืชื ื•ืฆืจ ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘ืคืงื•ื“ื” CREATE STATISTICS ื›ื“ื™ ืœืฉืคืจ ืืช ื™ืขื™ืœื•ืช ื”ืชื–ืžื•ืŸ ืฉืœ ืฉืื™ืœืชื•ืช ื”ืžื›ื™ืœื•ืช ืชื ืื™ OR ืื• ื—ื™ืคื•ืฉื™ ืจืฉื™ืžื” ื‘ืืžืฆืขื•ืช IN ืื• ื‘ื™ื˜ื•ื™ื™ื ื›ืœืฉื”ื.
  • ื ื™ืงื•ื™ ื”ืžื“ื“ื™ื ื‘ืžื”ืœืš ื”ืคืขื•ืœื” ื”ื•ืืฅ ืœึดืฉืึฐืื•ึนื‘ ืขืœ ื™ื“ื™ ื”ืงื‘ืœื” ืฉืœ ืื™ืกื•ืฃ ืืฉืคื” ื‘ืื™ื ื“ืงืกื™ื. ื‘ืืžืฆืขื•ืช ื”ืคืจืžื˜ืจ ื”ื—ื“ืฉ "PARALLEL", ื”ืžื ื”ืœ ื™ื›ื•ืœ ืœืงื‘ื•ืข ืืช ืžืกืคืจ ื”ืฉืจืฉื•ืจื™ื ืฉื™ืคืขืœื• ื‘ื•-ื–ืžื ื™ืช ืขื‘ื•ืจ VACUUM. ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœื™ื–ื•ื ื‘ื™ืฆื•ืข VACUUM ืื•ื˜ื•ืžื˜ื™ ืœืื—ืจ ื”ื›ื ืกืช ื”ื ืชื•ื ื™ื.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืžื™ื•ืŸ ืื™ื ืงืจืžื ื˜ืœื™, ื”ืžืืคืฉืจืช ืœืš ืœื”ืฉืชืžืฉ ื‘ื ืชื•ื ื™ื ืฉืžืžื•ื™ื ื™ื ื‘ืฉืœื‘ ื”ืงื•ื“ื ื›ื“ื™ ืœื”ืื™ืฅ ืืช ื”ืžื™ื•ืŸ ื‘ืฉืœื‘ื™ื ื”ื‘ืื™ื ืฉืœ ืขื™ื‘ื•ื“ ืฉืื™ืœืชื•ืช. ื›ื“ื™ ืœืืคืฉืจ ืืช ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื”ื—ื“ืฉื” ื‘ืžืชื›ื ืŸ ื”ืฉืื™ืœืชื•ืช, ื™ืฉ ื”ื’ื“ืจื” "ื”ืคืขืœ_ืžื•ืกืฃ_ืžื‘ื—ืจ", ื”ืžื•ืคืขืœ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ.
  • ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ื’ื‘ื™ืœ ืืช ื”ื’ื•ื“ืœ ื—ืจื™ืฆื™ ืฉื›ืคื•ืœ, ื”ืžืืคืฉืจ ืœืš ืœื”ื‘ื˜ื™ื— ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืืช ื”ืฉืžื™ืจื” ืฉืœ ืžืงื˜ืขื™ ื™ื•ืžืŸ ื›ืชื™ื‘ื” ืขืฆืœืŸ (WAL) ืขื“ ืฉื”ื ืžืชืงื‘ืœื™ื ืขืœ ื™ื“ื™ ื›ืœ ืฉืจืชื™ ื”ื’ื™ื‘ื•ื™ ื”ืžืงื‘ืœื™ื ื”ืขืชืงื™ื. ื—ืจื™ืฆื™ ืฉื›ืคื•ืœ ื’ื ืžื•ื ืขื™ื ืžื”ืฉืจืช ื”ืจืืฉื™ ืœืžื—ื•ืง ืฉื•ืจื•ืช ืฉืขืœื•ืœื•ืช ืœื’ืจื•ื ืœื”ืชื ื’ืฉื•ื™ื•ืช, ื’ื ืื ืฉืจืช ื”ื’ื™ื‘ื•ื™ ืื™ื ื• ืžืงื•ื•ืŸ. ืฉื™ืžื•ืฉ ื‘ืคืจืžื˜ืจ max_slot_wal_keep_size ื›ืขืช ืชื•ื›ืœ ืœื”ื’ื‘ื™ืœ ืืช ื”ื’ื•ื“ืœ ื”ืžืจื‘ื™ ืฉืœ ืงื‘ืฆื™ WAL ื›ื“ื™ ืœืžื ื•ืข ืื•ื–ืœ ืฉืœ ืฉื˜ื— ื”ื“ื™ืกืง.
  • ื”ื™ื›ื•ืœื•ืช ืฉืœ ื ื™ื˜ื•ืจ ืคืขื™ืœื•ืช DBMS ื”ื•ืจื—ื‘ื•: ื”ืคืงื•ื“ื” EXPLAIN ืžืกืคืงืช ืชืฆื•ื’ื” ืฉืœ ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ื ื•ืกืคื•ืช ืขืœ ื”ืฉื™ืžื•ืฉ ื‘ื™ื•ืžืŸ WAL; V 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".
    ื˜ืจื™ื’ืจื™ื ืฉืคื•ืขืœื™ื ื‘ืจืžืช ื”ืฉื•ืจื”.

  • ืชื—ื‘ื™ืจ "ืชื‘ื™ื ืชื—ื™ืœื”" ืžืืคืฉืจ ื›ืขืช ืฉื™ืžื•ืฉ ื‘ื‘ื™ื˜ื•ื™ "WITH TIES" ื›ื“ื™ ืœื”ื—ื–ื™ืจ ืฉื•ืจื•ืช ื ื•ืกืคื•ืช ืฉื ืžืฆืื•ืช ื‘ื–ื ื‘ ืžืขืจืš ื”ืชื•ืฆืื•ืช ืฉื”ื•ืฉื’ ืœืื—ืจ ื”ื—ืœืช "ORDER BY".
  • ื™ื™ืฉื ืืช ื”ืจืขื™ื•ืŸ ืฉืœ ืชื•ืกืคื•ืช ืžื”ื™ืžื ื•ืช ("ื”ืจื—ื‘ื” ืžื”ื™ืžื ื”"), ืืฉืจ ื ื™ืชืŸ ืœื”ืชืงื™ืŸ ืขืœ ื™ื“ื™ ืžืฉืชืžืฉื™ื ืจื’ื™ืœื™ื ืฉืื™ืŸ ืœื”ื ื–ื›ื•ื™ื•ืช ืžื ื”ืœ DBMS. ื”ืจืฉื™ืžื” ืฉืœ ืชื•ืกืคื•ืช ื›ืืœื” ืžื•ื’ื“ืจืช ืžืจืืฉ ืžืจืืฉ ื•ื ื™ืชืŸ ืœื”ืจื—ื™ื‘ ืื•ืชื” ืขืœ ื™ื“ื™ ืžืฉืชืžืฉ ื”ืขืœ. ืชื•ืกืคื•ืช ืืžื™ื ื•ืช ื›ื•ืœืœื•ืช pgcrypto, tablefunc, hstore ื•ื›ื• '
  • ื”ืžื ื’ื ื•ืŸ ืœื—ื™ื‘ื•ืจ ื˜ื‘ืœืื•ืช ื—ื™ืฆื•ื ื™ื•ืช Foreign Data Wrapper (postgres_fdw) ืžื™ื™ืฉื ืชืžื™ื›ื” ื‘ืื™ืžื•ืช ืžื‘ื•ืกืก ืชืขื•ื“ื”. ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืื™ืžื•ืช SCRAM, ืœืงื•ื—ื•ืช ืจืฉืื™ื ืœื‘ืงืฉ "ืงืฉื™ืจืช ืขืจื•ืฅ"(ื›ืจื™ื›ืช ืขืจื•ืฅ).

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”