ВСрсия Π½Π° PostgreSQL 14

Π‘Π»Π΅Π΄ Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° бСшС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π½ΠΎΠ² стабилСн ΠΊΠ»ΠΎΠ½ Π½Π° Π‘Π£Π‘Π” PostgreSQL 14. АктуализациитС Π·Π° новия ΠΊΠ»ΠΎΠ½ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ пуснати Π² ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅Ρ‚ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π΄ΠΎ Π½ΠΎΠ΅ΠΌΠ²Ρ€ΠΈ 2026 Π³.

Основни ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ JSON Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· ΠΈΠ·Ρ€Π°Π·ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° масив: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM тСст WHERE details['attributes']['size'] = '"medium"';

    ПодобСн синтаксис Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ Π·Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° ΠΊΠ»ΡŽΡ‡/стойност, прСдоставСни ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° hstore. Π’ΠΎΠ·ΠΈ синтаксис ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ бСшС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° унивСрсална Ρ€Π°ΠΌΠΊΠ°, която Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ‚ΠΈΠΏ hstore: INSERT INTO mytable VALUES ('a=>b, c=>d'); Π˜Π—Π‘Π•Π Π•Π’Π• h['a'] FROM mytable; ΠΠšΠ’Π£ΠΠ›Π˜Π—Π˜Π ΠΠΠ• mytable SET h['c'] = 'Π½ΠΎΠ²ΠΎ';

  • БСмСйството ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΎ с Π½ΠΎΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ β€žΠΌΡƒΠ»Ρ‚ΠΈΠ΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½β€œ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈ позволяват Π΄Π° посочитС ΠΏΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ ΡΠΏΠΈΡΡŠΡ†ΠΈ ΠΎΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ ΠΎΡ‚ стойности, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС ΠΏΡ€ΠΈΠΏΠΎΠΊΡ€ΠΈΠ²Π°Ρ‚. Π’ допълнСниС към всСки ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ Ρ‚ΠΈΠΏ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π½Π΅Π³ΠΎΠ² собствСн ΠΌΠ½ΠΎΠ³ΠΎΠ΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅Π½ Ρ‚ΠΈΠΏ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏΡŠΡ‚ β€žint4rangeβ€œ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° β€žint4multirangeβ€œ, Π° Ρ‚ΠΈΠΏΡŠΡ‚ β€ždaterangeβ€œ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° β€ždatemultirangeβ€œ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ опростява Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° заявки, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Ρ‚ слоТни послСдоватСлности ΠΎΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ. SELECT '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • НаправСни са ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π° подобряванС Π½Π° производитСлността Π½Π° систСми с голямо Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ΠΈ голям Π±Ρ€ΠΎΠΉ Π²Ρ€ΡŠΠ·ΠΊΠΈ. ΠŸΡ€ΠΈ някои тСстовС сС наблюдава Π΄Π²ΡƒΠΊΡ€Π°Ρ‚Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността.
  • ЕфСктивността Π½Π° индСкситС Π½Π° B-Π΄ΡŠΡ€Π²ΠΎΡ‚ΠΎ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с растСТа Π½Π° индСкса, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ чСсто, Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° заявки ΠΎΡ‚ страна Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΎ Π½Π° Π½ΠΈΠ²ΠΎ libpq), ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° ускоритС сцСнариитС Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° голям Π±Ρ€ΠΎΠΉ ΠΌΠ°Π»ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° запис (INSERT/UPDATE/DELETE) Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° слСдваща заявка, Π±Π΅Π· Π΄Π° Ρ‡Π°ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π°. Π Π΅ΠΆΠΈΠΌΡŠΡ‚ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΠΎΠΌΠ°Π³Π° Π·Π° ускоряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΡ€ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ с Π³ΠΎΠ»Π΅ΠΌΠΈ закъснСния ΠΏΡ€ΠΈ доставка Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ΠΈ мноТСство PostgreSQL ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. ΠŸΡ€ΠΈ внСдряванСто Π½Π° логичСска рСпликация Π²Π΅Ρ‡Π΅ става възмоТно Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π² ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π² процСс Π½Π° изпълнСниС, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ производитСлността Π½Π° рСпликация Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π’ допълнСниС, логичСското Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° логичСска рСпликация, Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΎ.
  • ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° външни Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Foreign Data Wrapper (postgres_fdw) ΠΈΠΌΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° заявки, която Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠ° само ΠΏΡ€ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към Π΄Ρ€ΡƒΠ³ΠΈ PostgreSQL ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. postgres_fdw ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° добавя ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° добавянС Π½Π° Π΄Π°Π½Π½ΠΈ към външни Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Ρ‡Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° β€žIMPORT FOREIGN SCHEMAβ€œ.
  • НаправСни са ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° опСрацията VACUUM (ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ ΠΈ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° дисково ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅). Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° спСшно почистванС, ΠΊΠΎΠΉΡ‚ΠΎ пропуска Π½Π΅ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ почистванС, Π°ΠΊΠΎ са създадСни условия Π·Π° ΠΎΠ±Π²ΠΈΠ²Π°Π½Π΅ Π½Π° ID Π½Π° транзакция. НамалСно Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° индСкси във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ B-Tree. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅ ускорСно ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° опСрацията β€œANALYZE”, която ΡΡŠΠ±ΠΈΡ€Π° статистика Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π° компрСсиранС, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² систСмата TOAST, която отговаря Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΎΡ‚ тСкст ΠΈΠ»ΠΈ Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Π° информация. Π’ допълнСниС към ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π° компрСсия pglz, TOAST Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° LZ4.
  • Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ са срСдствата Π·Π° наблюдСниС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π‘Π£Π‘Π”. Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са ΠΈΠ·Π³Π»Π΅Π΄ΠΈ Π·Π° прослСдяванС Π½Π° Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ COPY (pg_stat_progress_copy), статистика Π·Π° слотовСтС Π·Π° рСпликация (pg_stat_replication_slots) ΠΈ дСйността, ΡΠ²ΡŠΡ€Π·Π°Π½Π° с ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° WAL (pg_stat_wal). Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функцията compute_query_id, която позволява Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ подсистСми, ΠΊΠ°Ρ‚ΠΎ pg_stat_activity ΠΈ EXPLAIN VERBOSE, Π΄Π° прослСдяват заявки Ρ‡Ρ€Π΅Π· присвояванС Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π° всяка заявка.
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΠ° Π½Π° заявки Π·Π° подобряванС Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° заявки ΠΈ подобряванС Π½Π° производитСлността Π½Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΡ‚ΠΎ изпълнСниС Π½Π° послСдоватСлни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° сканиранС Π½Π° записи, ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ изпълнСниС Π½Π° заявки Π² PL/pgSQL с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žRETURN QUERYβ€œ ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ изпълнСниС Π½Π° заявки Π² β€ž ΠžΠ‘ΠΠžΠ’Π―Π’ΠΠΠ• НА ΠœΠΠ’Π•Π Π˜ΠΠ›Π˜Π—Π˜Π ΠΠ Π˜Π—Π“Π›Π•Π”β€. Π—Π° Π΄Π° сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ производитСлността Π½Π° Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½ΠΈ сливания (съСдиняванС), Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅.
  • Π Π°Π·ΡˆΠΈΡ€Π΅Π½Π°Ρ‚Π° статистика Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ€Π°Π·ΠΈ, Π° постСпСнното сортиранС Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π°.
  • Π‘ΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈ позволяват Π΄Π° управляватС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΊΠΎΠ΄, сСга ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π²ΡŠΡ€Π½Π°Ρ‚ΠΈ Π΄Π°Π½Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ "OUT".
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функция date_bin Π·Π° Π·Π°ΠΊΡ€ΡŠΠ³Π»ΡΠ²Π°Π½Π΅ Π½Π° стойности Π½Π° ΠΊΠ»Π΅ΠΉΠΌΠΎΡ‚ΠΎ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ спорСд ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π». SELECT date_bin('15 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са SEARCH ΠΈ CYCLE ΠΈΠ·Ρ€Π°Π·ΠΈ, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² SQL стандарта, Π·Π° Π΄Π° сС улСсни ΠΏΠΎΠ΄Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ†ΠΈΠΊΠ»ΠΈ Π² рСкурсивни ΠΎΠ±Ρ‰ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ (CTE). Π‘ Π Π•ΠšΠ£Π Π‘Π˜Π’ΠΠž search_tree(id, link, data) AS ( SELECT t.id, t.link, t.data FROM tree t UNION ALL SELECT t.id, t.link, t.data FROM tree t, search_tree st WHERE t. id = st.link ) Π”ΠͺΠ›Π‘ΠžΠ§Π˜ΠΠ НА Π’ΠͺРБЕНЕ ПΠͺΠ Π’Πž ПО id SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • Π’ ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° psql Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΡ‚ΠΎ Π΄ΠΎΠ²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ с Ρ‚Π°Π±ΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° функцията Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° към ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€œ\df”, Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π°Ρ‚Π° статистика Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° Π΄ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€œ\dX”.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС присвоят ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΈΠ»ΠΈ само Π·Π° запис Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅. ΠŸΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π·Π°Π΄Π°Π²Π°Ρ‚ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΈΠ·Π³Π»Π΅Π΄ΠΈ ΠΈ схСми, ΠΊΠ°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Ρ€ΠΎΠ»ΠΈ pg_read_all_data ΠΈ pg_write_all_data. GRANT pg_read_all_data НА user1;
  • НовитС инсталации ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ удостовСряванС с ΠΏΠ°Ρ€ΠΎΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° SCRAM-SHA-256 вмСсто md5 (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ β€žpassword_encryptionβ€œ ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° postgresql.conf Π²Π΅Ρ‡Π΅ Π΅ настроСн Π½Π° β€žscram-sha-256β€œ).

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€