αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ PostgreSQL 14 DBMS

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αžŸαžΆαžαžΆαžŸαŸ’αžαž·αžšαž—αžΆαž–αžαŸ’αž˜αžΈαž“αŸƒ PostgreSQL 14 DBMS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αŸ” αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαžΆαžαžΆαžαŸ’αž˜αžΈαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž”αŸ’αžšαžΆαŸ†αž†αŸ’αž“αžΆαŸ†αžšαž αžΌαžαžŠαž›αŸ‹αžαŸ‚αžœαž·αž…αŸ’αž†αž·αž€αžΆ 2026αŸ”

αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αŸ–

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™ JSON αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αž“αŸ’αžŸαŸ„αž˜αžŠαžΌαž…αž’αžΆαžšαŸαŸ– SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"medium"';

    αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαŸ„/αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™αž”αŸ’αžšαž—αŸαž‘ hstore αŸ” αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αž“αŸ’αž’αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ†αž”αžΌαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαžŸαž€αž› αžŠαŸ‚αž›αž“αŸ…αž–αŸαž›αž’αž“αžΆαž‚αžαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž§αž‘αžΆαž αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘ hstoreαŸ– αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ mytable VALUES ('a=>b, c=>d'); αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ h['a'] αž–αžΈ mytable; UPDATE mytable SET h['c'] = 'αžαŸ’αž˜αžΈ';

  • αž€αŸ’αžšαž»αž˜αž‚αŸ’αžšαž½αžŸαžΆαžšαž“αŸƒαž”αŸ’αžšαž—αŸαž‘αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ†αžŽαžαŸ‹αž‡αž½αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸ’αžšαž—αŸαž‘ "αž–αž αž»αž‡αž½αžš" αžαŸ’αž˜αžΈ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž”αž‰αŸ’αž‡αžΈαž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸƒαž‡αž½αžšαžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαž½αžαž›αžΎαž‚αŸ’αž“αžΆαŸ” αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž”αŸ’αžšαž—αŸαž‘αž‡αž½αžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αž“αžΈαž˜αž½αž™αŸ— αž”αŸ’αžšαž—αŸαž‘αž–αž αž»αž‡αž½αžšαžšαž”αžŸαŸ‹αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„ αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαž—αŸαž‘ β€œint4range” αžαŸ’αžšαžΌαžœαž“αžΉαž„ β€œint4multirange” αž αžΎαž™αž”αŸ’αžšαž—αŸαž‘ β€œdaterange” αžαŸ’αžšαžΌαžœαž“αžΉαž„ β€œdatemultirangeβ€αŸ” αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ’αžšαž—αŸαž‘αžαŸ’αž˜αžΈαž‡αž½αž™αžŸαž˜αŸ’αžšαž½αž›αžŠαž›αŸ‹αž€αžΆαžšαžšαž…αž“αžΆαžŸαŸ†αžŽαž½αžšαžŠαŸ‚αž›αžšαŸ€αž”αž…αŸ†αž›αŸ†αžŠαžΆαž”αŸ‹αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž“αŸƒαž‡αž½αžšαŸ” αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αž‘αž»αž€αžαŸ’αž–αžŸαŸ‹αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž˜αž½αž™αž…αŸ†αž“αž½αž“ αž€αžΆαžšαž€αžΎαž“αž‘αžΎαž„αž‘αŸ’αžœαŸαžŠαž„αž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž„αŸ’αž€αŸαžαŸ”
  • αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαžŸαž“αŸ’αž‘αžŸαŸ’αžŸαž“αŸ B-tree αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„ αž αžΎαž™αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αŸ†αžŽαžΎαž“αžŸαž“αŸ’αž‘αžŸαŸ’αžŸαž“αŸαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžαžΆαžšαžΆαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž’αžαž·αžαž·αž‡αž“ (αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αž˜αŸ’αžšαž·αž libpq) αžšαž”αŸ€αž”αž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αžαžΆαž˜αž”αŸ†αž–αž„αŸ‹αž“αŸƒαžŸαŸ†αžŽαžΎ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž™αŸ‰αžΆαž„αžŸαŸ†αžαžΆαž“αŸ‹αž“αžΌαžœαžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžšαžŸαŸαžšαžαžΌαž…αŸ—αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ† (αž”αž‰αŸ’αž…αžΌαž›/αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–/αž›αž»αž”) αžŠαŸ„αž™αž•αŸ’αž‰αžΎ αžŸαŸ†αžŽαžΎαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžŠαŸ„αž™αž˜αž·αž“αžšαž„αŸ‹αž…αžΆαŸ†αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαžŸαŸ†αžŽαžΎαž˜αž»αž“αŸ” αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αž€αŸαž‡αž½αž™αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž€αžΆαžšαž„αžΆαžšαž›αžΎαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž–αž“αŸ’αž™αžΆαž–αŸαž›αžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αž€αž‰αŸ’αž…αž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž™αžΌαžšαž•αž„αžŠαŸ‚αžšαŸ”
  • αžŸαž˜αžαŸ’αžαž—αžΆαž–αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž…αŸ‚αž€αž…αžΆαž™αžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ PostgreSQL αž…αŸ’αžšαžΎαž“αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒαž€αžΆαžšαž…αž˜αŸ’αž›αž„αžαžΆαž˜αž‘αžΌαž‡αžΈαžαž› αž₯αž‘αžΌαžœαž“αŸαŸ‡αžœαžΆαž€αŸ’αž›αžΆαž™αž‡αžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‰αžΎαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŸαŸ’αž‘αŸ’αžšαžΈαž˜ αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž“αžΌαžœαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒαž€αžΆαžšαž…αž˜αŸ’αž›αž„αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αŸ†αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž€αžΆαžšαžŒαž·αž€αžΌαžŠαž‘αžΌαž‡αžΈαžαž›αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž…αž˜αŸ’αž›αž„αž‘αžΌαž‡αžΈαžαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαŸ”
  • αž™αž“αŸ’αžαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαžšαžΆαž„αžαžΆαž„αž€αŸ’αžšαŸ… Foreign Data Wrapper (postgres_fdw) αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαž½αžšαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž› αžŠαŸ‚αž›αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž”αžΆαž“αžαŸ‚αž“αŸ…αž–αŸαž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ PostgreSQL αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” postgres_fdw αž€αŸαž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ…αžαžΆαžšαžΆαž„αžαžΆαž„αž€αŸ’αžšαŸ…αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž”αžΆαž…αŸ‹ αž“αž·αž„αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž“αžΆαŸ†αž…αžΌαž›αžαžΆαžšαžΆαž„αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αžŠαŸ„αž™αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† "IMPORT FOREIGN scheMA" αŸ”
  • αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš VACUUM (αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αžŸαŸ†αžšαžΆαž˜ αž“αž·αž„αž€αžΆαžšαžœαŸαž…αžαŸ’αž…αž”αŸ‹αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αžαžΆαžŸ)αŸ” αžšαž”αŸ€αž”αžŸαž˜αŸ’αž’αžΆαžαž–αŸαž›αž˜αžΆαž“αž’αžΆαžŸαž“αŸ’αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžŠαŸ‚αž›αžšαŸ†αž›αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžŠαŸ‚αž›αž˜αž·αž“αžŸαŸ†αžαžΆαž“αŸ‹ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž›αž€αŸ’αžαžαžŽαŸ’αžŒαž‡αž»αŸ†αžœαž·αž‰αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαŸ” αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž›αžΎαžŸαž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αž·αž”αž·αž€αŸ’αžšαž˜αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹ B-Tree αŸ” αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš "αž€αžΆαžšαžœαž·αž—αžΆαž‚" αžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αžŸαŸ’αžαž·αžαž·αž’αŸ†αž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž“αŸ’αž›αžΏαž“αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž”αž„αŸ’αž αžΆαž”αŸ‹αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ TOAST αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αŸ†αŸ— αžŠαžΌαž…αž‡αžΆαž”αŸ’αž›αž»αž€αž’αžαŸ’αžαž”αž‘ αž¬αž–αŸαžαŸŒαž˜αžΆαž“αž’αžšαžŽαžΈαž˜αžΆαžαŸ’αžšαŸ” αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž”αž„αŸ’αž αžΆαž”αŸ‹ pglz αž₯αž‘αžΌαžœαž“αŸαŸ‡ TOAST αž’αžΆαž…αž”αŸ’αžšαžΎαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ LZ4 αŸ”
  • αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž”αžŸαŸ‹ DBMS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αžŠαžΎαž˜αŸ’αž”αžΈαžαžΆαž˜αžŠαžΆαž“αžœαžŒαŸ’αžαž“αž—αžΆαž–αž“αŸƒαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ 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)αŸ” αž‡αžΆαž˜αž½αž™αž“αžΉαž„ RECURSIVE 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

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹