เบเบฒเบ™เบ›เปˆเบญเบ PostgreSQL 14 DBMS

เบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบชเบฒเบ‚เบฒเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เปƒเบซเบกเปˆเบ‚เบญเบ‡ PostgreSQL 14 DBMS เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบžเบตเบกเบกเบฒ. เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบชเปเบฒเบฅเบฑเบšเบชเบฒเบ‚เบฒเปƒเบซเบกเปˆเบˆเบฐเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเปƒเบ™เป„เบฅเบเบฐเบซเป‰เบฒเบ›เบตเบˆเบปเบ™เบเปˆเบงเบฒเป€เบ”เบทเบญเบ™เบžเบฐเบˆเบดเบ 2026.

เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบ•เบปเป‰เบ™เบ•เป:

  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™ JSON เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ„เป‰เบฒเบเบ„เบท array: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"medium"';

    syntax เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบฅเบฐเบซเบฑเบ” / เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบ›เบฐเป€เบžเบ” hstore. syntax เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰เบเบญเบšเบ—เบปเปˆเบงเป„เบ›, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบ›เบฐเป€เบžเบ”เบญเบทเปˆเบ™เป†. เบ•เบปเบงเบขเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ” hstore: INSERT INTO mytable VALUES ('a=>b, c=>d'); SELECT h['a'] เบˆเบฒเบ mytable; UPDATE mytable SET h['c'] = 'เปƒเปเปˆ';

  • เบ„เบญเบšเบ„เบปเบงเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบเบ”เป‰เบงเบเบ›เบฐเป€เบžเบ” "multirange" เปƒเบซเบกเปˆ, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบฅเบฒเบเบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เป„เบฅเบเบฐเบ—เบตเปˆเบšเปเปˆเบŠเป‰เปเบฒเบเบฑเบ™เบ‚เบญเบ‡เบ„เปˆเบฒ. เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเปเบ•เปˆเบฅเบฐเบ›เบฐเป€เบžเบ”เบŠเปˆเบงเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง, เบ›เบฐเป€เบžเบ” multirange เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบต, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ›เบฐเป€เบžเบ” "int4range" เป€เบ—เบปเปˆเบฒเบเบฑเบš "int4multirange", เปเบฅเบฐเบ›เบฐเป€เบžเบ” "daterange" เป€เบ—เบปเปˆเบฒเบเบฑเบš "datemultirange". เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เปƒเบซเบกเปˆโ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹เบเบฒเบ™โ€‹เบญเบญเบโ€‹เปเบšเบšโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบญเบšโ€‹เบ–เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบชเบฐโ€‹เบฅเบฑเบšโ€‹เบชเบฑเบšโ€‹เบŠเป‰เบญเบ™โ€‹เบ‚เบญเบ‡โ€‹เป„เบฅโ€‹เบเบฐโ€‹. SELECT '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เป‚เบซเบผเบ”เบชเบนเบ‡เบ—เบตเปˆเบ›เบธเบ‡เปเบ•เปˆเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ. เปƒเบ™เบšเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบญเบ‡เป€เบ—เบปเปˆเบฒเปเบกเปˆเบ™เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™.
  • เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบ”เบฑเบ”เบŠเบฐเบ™เบต B-tree เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปเบฅเบฐเบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เป€เบ•เบตเบšเป‚เบ•เบ‚เบญเบ‡เบ”เบฑเบ”เบŠเบฐเบ™เบตเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เป€เบฅเบทเป‰เบญเบเป†เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเปˆเบฒเบเบฅเบนเบเบ„เป‰เบฒ (เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฅเบฐเบ”เบฑเบš libpq) เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบ—เปเปˆเบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบฑเปˆเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฝเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ (INSERT / UPDATE / DELETE) เป‚เบ”เบเบเบฒเบ™เบชเบปเปˆเบ‡. เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ•เปเปˆเป„เบ›เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒเบœเบปเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ. เป‚เบซเบกเบ”เบเบฑเบ‡เบŠเปˆเบงเบเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบกเบตเบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบเบฒเบง.
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบˆเบเบขเบฒเบเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ PostgreSQL เบซเบผเบฒเบเบญเบฑเบ™. เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบšเบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™, เบ›เบฐเบˆเบธเบšเบฑเบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เป‚เบซเบกเบ” streaming เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เบ”เบตเบ—เบตเปˆเบชเบธเบ”.
  • เบเบปเบ™เป„เบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบžเบฒเบเบ™เบญเบ Foreign Data Wrapper (postgres_fdw) เป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบšเบšเบชเบญเบšเบ–เบฒเบกเบ‚เบฐเบซเบ™เบฒเบ™, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบˆเบธเบšเบฑเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ PostgreSQL เบญเบทเปˆเบ™เป†. postgres_fdw เบเบฑเบ‡เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบžเบฒเบเบ™เบญเบเปƒเบ™เบฎเบนเบšเปเบšเบš batch เปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบšเปˆเบ‡เบชเปˆเบงเบ™เป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธเบ„เปเบฒเบชเบฑเปˆเบ‡ "IMPORT FOREIGN SCHEMA".
  • เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ‚เบญเบ‡ VACUUM (เบเบฒเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปเบฅเบฐเบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆเบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบœเปˆเบ™). เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบชเบธเบเป€เบชเบตเบ™เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเบ—เบตเปˆเบ‚เป‰เบฒเบกเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ–เป‰เบฒเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบฎเบญเบšเบงเบฝเบ™ ID เบ—เบธเบฅเบฐเบเปเบฒเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™. เบซเบผเบธเบ”เบฅเบปเบ‡ overhead เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ”เบฑเบ”เบชเบฐเบ™เบตเปƒเบ™เบฎเบนเบšเปเบšเบš B-Tree. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™ "เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ", เป€เบŠเบดเปˆเบ‡เป€เบเบฑเบšเบเปเบฒเบชเบฐเบ–เบดเบ•เบดเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบฅเบฑเปˆเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.
  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบงเบดเบ—เบตเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบš TOAST, เป€เบŠเบดเปˆเบ‡เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เป€เบŠเบฑเปˆเบ™: เบšเบฅเบฑเบญเบเบ‚เปเป‰เบ„เบงเบฒเบกเบซเบผเบทเบ‚เปเป‰เบกเบนเบ™เป€เบฅเบ‚เบฒเบ„เบฐเบ™เบดเบ”. เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เบšเบตเบšเบญเบฑเบ” pglz, เบ”เบฝเบงเบ™เบตเป‰ TOAST เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ LZ4 เป„เบ”เป‰.
  • เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡ DBMS เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบ. เป€เบžเบตเปˆเบกเบกเบธเบกเป€เบšเบดเปˆเบ‡เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบ„เบทเบšเบซเบ™เป‰เบฒเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ COPY (pg_stat_progress_copy), เบชเบฐเบ–เบดเบ•เบดเบเปˆเบฝเบงเบเบฑเบš replication slots (pg_stat_replication_slots) เปเบฅเบฐเบเบดเบ”เบˆเบฐเบเปเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ WAL (pg_stat_wal). เบŸเบฑเบ‡เบŠเบฑเบ™ compute_query_id เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ•เปˆเบฒเบ‡เป†, เป€เบŠเบฑเปˆเบ™: pg_stat_activity เปเบฅเบฐ EXPLAIN VERBOSE, เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป‚เบ”เบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป.
  • เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบ•เบปเบงเบงเบฒเบ‡เปเบœเบ™เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ™เบ‚เบญเบ‡เบ„เปเบฒเบ–เบฒเบกเปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ scan เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเบชเบญเบšเบ–เบฒเบกเปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ™เปƒเบ™ PL / pgSQL เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ "RETURN QUERY", เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเปƒเบ™ " เบฃเบตเป€เบŸเบฃเบŠเบงเบดเบงเบ—เบตเปˆเป€เบฎเบฑเบ”เบ”เป‰เบงเบเบงเบฑเบ”เบชเบฐเบ”เบธโ€. เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ cyclic nested merges (เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบก), เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš caching เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”.
  • เบชเบฐเบ–เบดเบ•เบดเบ‚เบฑเป‰เบ™เบชเบนเบ‡เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ, เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบ™เป‰เบฒเบ•เปˆเบฒเบ‡.
  • เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เบšเบฅเบฑเบญเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฑเบšเบ„เบทเบ™เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ "OUT".
  • เป€เบžเบตเปˆเบกเบŸเบฑเบ‡เบŠเบฑเบ™ date_bin เปƒเบซเป‰เบเบฑเบšเบ„เปˆเบฒ timestamp เบฎเบญเบšเบ•เบฒเบกเบŠเปˆเบงเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบฐเบšเบธ. SELECT date_bin('15 เบ™เบฒเบ—เบต', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • เป€เบžเบตเปˆเบก SEARCH เปเบฅเบฐ CYCLE expressions เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ SQL เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบชเบฑเปˆเบ‡เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบฎเบญเบšเบงเบฝเบ™เปƒเบ™ recursive Common Table Expressions (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 utility, เบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบเบฑเบšเปเบ—เบฑเบšเป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡, เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡ "\df", เปเบฅเบฐเบชเบฐเบ–เบดเบ•เบดเบ—เบตเปˆเบชเบฐเปเบ”เบ‡เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเป„เบ›เบชเบนเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡ "\dX".
  • เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบกเบญเบšเบชเบดเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบซเบผเบทเบ‚เบฝเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เปƒเบซเป‰เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰. เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เบกเบธเบกเป€เบšเบดเปˆเบ‡, เปเบฅเบฐ schemas เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เป‚เบ”เบเปƒเบŠเป‰ 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

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™