เบญเบฑเบšเป€เบเบฃเบ”เบชเบณเบฅเบฑเบšเบ„เบปเบ™เบ‚เบตเป‰เบ„เป‰เบฒเบ™: PostgreSQL 12 เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบ™เบงเปƒเบ”

เบญเบฑเบšเป€เบเบฃเบ”เบชเบณเบฅเบฑเบšเบ„เบปเบ™เบ‚เบตเป‰เบ„เป‰เบฒเบ™: PostgreSQL 12 เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบ™เบงเปƒเบ”

PostgreSQL 12, เบชเบฐเบšเบฑเบšเบซเบฅเป‰เบฒเบชเบธเบ”เบ‚เบญเบ‡ "เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เป‚เบฅเบ," เบˆเบฐเบญเบญเบเบกเบฒเปƒเบ™เบชเบญเบ‡เบชเบฒเบกเบญเบฒเบ—เบดเบ” (เบ–เป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบ›เบฑเบ™เป„เบ›เบ•เบฒเบกเปเบœเบ™เบเบฒเบ™). เบ™เบตเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบญเบเบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ—เบตเปˆเบกเบตเป‚เบ•เบ™เบ‚เบญเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบ•เปเปˆเบ›เบต, เปเบฅเบฐเป€เบงเบปเป‰เบฒเบเบปเบ‡เป„เบ›เบเบปเบ‡เบกเบฒ, เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบ›เบฐเบ—เบฑเบšเปƒเบˆ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบ‚เป‰เบญเบเบเบฒเบเป€เบ›เบฑเบ™เบชเบฐเบกเบฒเบŠเบดเบเบ—เบตเปˆเบซเป‰เบฒเบงเบซเบฑเบ™เบ‚เบญเบ‡เบŠเบธเบกเบŠเบปเบ™ PostgreSQL.

เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเบชเบฐเบšเบฑเบšเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, PostgreSQL 12 เบšเปเปˆเบกเบตเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบชเบญเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบงเบฑเบ” (เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบซเบผเบทเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ™). เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป€เบ„เบตเบเป€เบงเบปเป‰เบฒเบ•เบฐเบซเบฅเบปเบเบงเปˆเบฒเบฅเบฑเบเบชเบฐเบ™เบฐเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡ PostgreSQL 12 เปเบกเปˆเบ™เบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบซเบผเบฒเบเบเบงเปˆเบฒเป€เบเบปเปˆเบฒ. เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบšเป?

เปเบ•เปˆ PostgreSQL 12 เบšเปเปˆเป„เบ”เป‰เบขเบธเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™: เบ”เป‰เบงเบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเบกเปˆ, เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ”เบตเบ‚เบถเป‰เบ™, เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบ„เบทเบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบš!

(เบ”เบต, เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เบ”เบฑเบ”เบชเบฐเบ™เบตเบ„เบทเบ™เปƒเบซเบกเปˆ, เปเบ•เปˆเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเบ™เบตเป‰เบกเบฑเบ™เบšเปเปˆเบซเบ™เป‰เบฒเบขเป‰เบฒเบ™เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบ„เบตเบเป€เบฎเบฑเบ”.)

เบกเบฑเบ™เบˆเบฐเบ”เบตเบ—เบตเปˆเบˆเบฐเบเบปเบเบฅเบฐเบ”เบฑเบš PostgreSQL เปเบฅเบฐเป€เบžเบตเบ”เป€เบžเบตเบ™เบเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบฑเบ™เบ—เบตเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ fuss เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เบชเบญเบ‡เบชเบฒเบกเบ›เบตเบเปˆเบญเบ™, เบ‚เป‰เบญเบเป„เบ”เป‰เบ—เบปเบšเบ—เบงเบ™เบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบšเบˆเบฒเบ PostgreSQL 9.4 เป„เบ› PostgreSQL 10 เปเบฅเบฐเป€เบซเบฑเบ™เบงเปˆเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบฅเบฑเปˆเบ‡เบ‚เบทเป‰เบ™เบเป‰เบญเบ™เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เปเบšเบšเบชเบญเบšเบ–เบฒเบกเบ—เบตเปˆเบ›เบฑเบšเบ›เบธเบ‡เปƒเบ™ PostgreSQL 10. เปเบฅเบฐ, เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”, เป€เบเบทเบญเบšเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบˆเบฒเบเบ‚เป‰เบญเบ (เบžเบฝเบ‡เปเบ•เปˆเบเปเบฒเบ™เบปเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ. max_parallel_workers).

เบ•เบปเบเบฅเบปเบ‡, เบกเบฑเบ™เบชเบฐเบ”เบงเบเป€เบกเบทเปˆเบญเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบตเบ‚เบถเป‰เบ™เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบญเบฑเบšเป€เบเบฃเบ”. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบžเบฐเบเบฒเบเบฒเบกเบขเปˆเบฒเบ‡เบซเบ™เบฑเบเปเบซเบ™เป‰เบ™เป€เบžเบทเปˆเบญเบเบฐเบฅเบธเบ™เบฒเบœเบนเป‰เปƒเบŠเป‰, เป€เบžเบฒเบฐเบงเปˆเบฒ PostgreSQL เบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒเปเบฅเบฐเบซเบผเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบšเบ‡เปˆเบฒเบเป†เบเบฑเบš PostgreSQL 12 เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบกเบตเบ„เบงเบฒเบกเบชเบธเบเป„เบ”เป‰เปเบ™เบงเปƒเบ”? เบ‚เป‰เบญเบเบˆเบฐเบšเบญเบเป€เบˆเบปเป‰เบฒเบ”เบฝเบงเบ™เบตเป‰.

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ”เบฑเบ”เบชเบฐเบ™เบตเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™

เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ”เบฑเบ”เบชเบฐเบ™เบต, เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบšเปเปˆเป„เบ›เป„เบ. เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบ‚เปเป‰เบกเบนเบ™เป„เบ”เป‰เป„เบงเปเบ™เบงเปƒเบ”? เบฅเบฐเบšเบปเบšเบ”เบฑเบ”เบชเบฐเบ™เบตเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ PostgreSQL เป€เบญเบตเป‰เบ™เบงเปˆเบฒ B-เบ•เบปเป‰เบ™เป„เบกเป‰. เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ”เบฑเบ”เบŠเบฐเบ™เบตเบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ.

เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ CREATE INDEX ON some_table (some_column), เปเบฅเบฐ PostgreSQL เป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบฒเบเบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเบฎเบฑเบเบชเบฒเบ”เบฑเบ”เบชเบฐเบ™เบตเปƒเบซเป‰เบ—เบฑเบ™เป€เบงเบฅเบฒเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบชเปˆ, เบ›เบฑเบšเบ›เบธเบ‡, เปเบฅเบฐเบฅเบถเบšเบ„เปˆเบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡. เบ—เบธเบโ€‹เบชเบดเปˆเบ‡โ€‹เบ—เบธเบโ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบ”เป‰เบงเบโ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹, เป€เบ›เบฑเบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เป‚เบ”เบ magicโ€‹.

เปเบ•เปˆเบ”เบฑเบ”เบชเบฐเบ™เบต PostgreSQL เบกเบตเบšเบฑเบ™เบซเบฒเบซเบ™เบถเปˆเบ‡ - เบžเบงเบเป€เบ‚เบปเบฒ เบกเบตเบญเบฑเบ”เบ•เบฒเป€เบ‡เบดเบ™เป€เบŸเบตเป‰ เปเบฅเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบ–เบดเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ”เบดเบชเบเปŒเบžเบดเป€เบชเบ”เปเบฅเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡. เป‚เบ”เบ "bloat" เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ•เบดเบœเบปเบ™เปƒเบ™เบเบฒเบ™เบฎเบฑเบเบชเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ”เบฑเบ”เบชเบฐเบ™เบต. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐ - เบซเบผเบทเบญเบฒเบ”เบˆเบฐเบšเปเปˆ - เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš tuples เบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ—เบตเปˆเบกเบฑเบ™เป€เบญเบปเบฒเบญเบญเบ เป€เบ„เบทเปˆเบญเบ‡ เบชเบณ เบญเบฒเบ‡ (เบ‚เปเบ‚เบญเบšเปƒเบˆ Peter Gaghan เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™)Peter Geoghegan)). เบ”เบฑเบ”เบŠเบฐเบ™เบต bloat เปเบกเปˆเบ™เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบ”เบฑเบ”เบŠเบฐเบ™เบตเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบขเปˆเบฒเบ‡เบซเป‰เบฒเบงเบซเบฑเบ™.

PostgreSQL 12 เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบ”เบฑเบ”เบŠเบฐเบ™เบต B-tree เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบŠเบฑเปˆเบ™ TPC-C เป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเป‚เบ”เบเบชเบฐเป€เบฅเปˆเบ 40% เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เป‰เบญเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบ™เป‰เบญเบเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบเบฒเบ™เบฎเบฑเบเบชเบฒเบ”เบฑเบ”เบชเบฐเบ™เบต B-tree (เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™), เปเบ•เปˆเบเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบ”เบฑเบ”เบŠเบฐเบ™เบตเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ.

เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบ›เบฑเบšเบ›เบธเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบขเปˆเบฒเบ‡เบซเป‰เบฒเบงเบซเบฑเบ™ - เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ OLTP (เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ—เบธเบฅเบฐเบเบณเปเบšเบšเบชเบปเบ”เป†) - เบˆเบฐเปƒเบŠเป‰เปเบœเปˆเบ™เปเบฅเบฐเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ. เบžเบทเป‰เบ™เบ—เบตเปˆเบ”เบดเบชเบเปŒเบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเปƒเบ”, เบžเบทเป‰เบ™เบ—เบตเปˆเบˆเบฑเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบกเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบซเบผเบฒเบเบ‚เบถเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™.

เบšเบฒเบ‡เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบšเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบ”เบฑเบ”เบŠเบฐเบ™เบต B-tree เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ (e.g. pg_upgrade เบˆเบฐเบšเปเปˆเบชเป‰เบฒเบ‡เบ”เบฑเบ”เบชเบฐเบ™เบตเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”). เปƒเบ™เบชเบฐเบšเบฑเบšเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡ PostgreSQL, เบเบฒเบ™เบชเป‰เบฒเบ‡เบ”เบฑเบ”เบชเบฐเบ™เบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ„เบทเบ™เปƒเบซเบกเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบขเบธเบ”เป€เบŠเบปเบฒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰. เปเบ•เปˆ PostgreSQL 12 เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบขเบฑเบ™เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡: เบ•เบญเบ™เบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบ”เบฑเบ”เบชเบฐเบ™เบตเปƒเบซเบกเปˆเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡. REINDEX เบžเป‰เบญเบกเบเบฑเบ™เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™ downtime เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™.

เบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ”เบฑเบ”เบชเบฐเบ™เบตเปƒเบ™ PostgreSQL 12. เบชเบดเปˆเบ‡เบญเบทเปˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบต magic เบšเบฒเบ‡ - เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ‚เบฝเบ™เบฅเปˆเบงเบ‡เปœเป‰เบฒ, aka WAL (เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ‚เบฝเบ™เบฅเปˆเบงเบ‡เปœเป‰เบฒ). เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ‚เบฝเบ™เบฅเปˆเบงเบ‡เปœเป‰เบฒเบˆเบฐเบšเบฑเบ™เบ—เบถเบเบ—เบธเบเบ—เบธเบฅเบฐเบเบณเปƒเบ™ PostgreSQL เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง เปเบฅเบฐเบเบฒเบ™เป€เบฎเบฑเบ”เบŠเป‰เบณ. เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบŠเป‰เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเปเบฅเบฐ เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเบˆเบธเบ”เปƒเบ™เป€เบงเบฅเบฒ. เปเบ™เปˆเบ™เบญเบ™, เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ‚เบฝเบ™เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบชเปˆเปเบœเปˆเบ™, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

PostgreSQL 12 เป„เบ”เป‰เบซเบผเบธเบ”เบฅเบปเบ‡เบชเปˆเบงเบ™เป€เบเบตเบ™เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบ WAL เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบ”เบฑเบ”เบŠเบฐเบ™เบต GiST, GIN, เปเบฅเบฐ SP-GiST เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบ”เบฑเบ”เบŠเบฐเบ™เบต. เบญเบฑเบ™เบ™เบตเป‰เปƒเบซเป‰เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™เบซเบผเบฒเบเบขเปˆเบฒเบ‡: เบšเบฑเบ™เบ—เบถเบ WAL เปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบ”เบดเบชเบเปŒเปœเป‰เบญเบเบฅเบปเบ‡ เปเบฅเบฐ เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ–เบทเบเบซเบผเบดเป‰เบ™เบ„เบทเบ™เป„เบ”เป‰เป„เบงเบ‚เบถเป‰เบ™ เป€เบŠเบฑเปˆเบ™: เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเบนเป‰เป„เบžเบžเบดเบšเบฑเบ” เบซเบผเบท เบเบฒเบ™เบเบนเป‰เบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบˆเบธเบ”เป†. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบ”เบฑเบ”เบชเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบžเบนเบกเบชเบฒเบ”เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ PostGIS เปƒเบŠเป‰เบ”เบฑเบ”เบŠเบฐเบ™เบต GiST เบซเบผเบฒเบ), เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบญเบทเปˆเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบปเบšเบเบฒเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเปƒเบ”เป†เปƒเบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ.

เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™ - เปƒเบซเบเปˆเบเบงเปˆเบฒ, เบ”เบตเบเบงเปˆเบฒ, เป„เบงเบเบงเปˆเบฒ

PostgreSQL 10 เปเบ™เบฐเบ™เปเบฒ เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹. เปƒเบ™ PostgreSQL 11 เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เปƒเบŠเป‰เบซเบผเบฒเบ. เปƒเบ™ PostgreSQL 12 เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ•เปˆเบฒเบ‡เป†.

เปƒเบ™ PostgreSQL 12, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เป„เบ”เป‰เบ”เบตเบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ–เป‰เบฒเบกเบตเบžเบฒเบ—เบดเบŠเบฑเบ™เบซเบผเบฒเบเบžเบฑเบ™เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบชเบฒเบกเบชเปˆเบงเบ™เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบกเบตเบซเบฅเบฒเบเบžเบฑเบ™เบ„เบปเบ™, เบกเบฑเบ™เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เป„เบงเบเบงเปˆเบฒ. เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ INSERT เป„เบงเบ‚เบถเป‰เบ™เบขเบนเปˆเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบžเบฒเบ—เบดเบŠเบฑเบ™.

เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ COPY - เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ”เบต เบ”เบฒเบงโ€‹เป‚เบซเบผเบ”โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบผเบฒเบโ€‹ เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡ เป„เบ”เป‰เบฎเบฑเบš JSON โ€” เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบšเปˆเบ‡เบชเปˆเบงเบ™เปƒเบ™ PostgreSQL 12 เบเบฑเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™. เบ”เป‰เบงเบ COPY เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เป„เบงเปเบฅเป‰เบง, เปเบ•เปˆเปƒเบ™ PostgreSQL 12 เบกเบฑเบ™เบšเบดเบ™เปเบ—เป‰เป†.

เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบ‚เปเป‰เป„เบ”เป‰เบ›เบฝเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, PostgreSQL เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒเปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™. เปเบฅเบฐเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ. เบ–เป‰เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบกเบตเบซเบผเบฒเบเบžเบฒเบ—เบดเบŠเบฑเบ™, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เบŠเบธเบ”เป€เบงเบฅเบฒ, เบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบšเปเบšเบšเบ‡เปˆเบฒเบเป†เบˆเบฐเบŠเปˆเบงเบเบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบกเบฑเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.

เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™ "เบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบšเปเบฅเบฐเป€เบžเบตเบ”เป€เบžเบตเบ™" เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡, PostgreSQL 12 เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบ„เบตเบ•เปˆเบฒเบ‡เบ›เบฐเป€เบ—เบ”เบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบšเปˆเบ‡เบชเปˆเบงเบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบ„เบงเบฒเบกเบชเบธเบเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš.

เบ”เป‰เบงเบเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ”เบตเบ‚เบถเป‰เบ™เบซเบผเบฒเบ

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ patch เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เปƒเบ™เบ•เบปเบงเบชเบฐเปเบ”เบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบปเปˆเบงเป„เบ› (aka CTE, aka เบ”เป‰เบงเบเบเบฒเบ™เบชเบญเบšเบ–เบฒเบก), เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบฅเปเบ–เป‰เบฒเบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบš เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบเบฑเบš PostgreSQL เบกเบตเบ„เบงเบฒเบกเบชเบธเบเบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบฑเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ, เปเบ™เปˆเบ™เบญเบ™, เบ—เปˆเบฒเบ™เปƒเบŠเป‰ CTE.

เบ‚เป‰เบญเบเบกเบฑเบเบˆเบฐเบžเบปเบšเบงเปˆเบฒเบœเบนเป‰เปƒเบซเบกเปˆเปƒเบ™ SQL เบกเบฑเบเปƒเบŠเป‰ CTEs; เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ‚เบฝเบ™เบžเบงเบเบกเบฑเบ™เบ”เป‰เบงเบเบงเบดเบ—เบตเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เบกเบฑเบ™เบเปเปˆเบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบ„เบทเบเบฑเบšเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เบชเปˆเบงเบ™เบ•เบปเบงเปเบฅเป‰เบง, เบ‚เป‰เบญเบเบกเบฑเบเบ‚เบฝเบ™เบ„เบณเบ–เบฒเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบทเบ™เปƒเปเปˆเป€เบžเบทเปˆเบญเป„เบ›เบกเบฒ เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™ CTE เปเบฅเบฐเป€เบžเบตเปˆเบกเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

PostgreSQL 12 เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” inline เบ›เบฐเป€เบžเบ”เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡ CTE เป‚เบ”เบเบšเปเปˆเบกเบตเบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡ (SELECT), เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบ„เบฑเป‰เบ‡เบ”เบฝเบงเบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป. เบ–เป‰เบฒเบ‚เป‰เบญเบเบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบชเบญเบšเบ–เบฒเบก CTE เบ—เบตเปˆเบ‚เป‰เบญเบเบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆ, เบžเบงเบเบกเบฑเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเบˆเบฐเบ•เบปเบเบขเบนเปˆเปƒเบ™เบ›เบฐเป€เบžเบ”เบ™เบตเป‰. เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ—เบตเปˆเบ›เบฐเบˆเบธเบšเบฑเบ™เบเบฑเบ‡เปเบฅเปˆเบ™เป„เบง.

เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, PostgreSQL 12 เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” SQL เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบซเบเบฑเบ‡. เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ‚เป‰เบญเบเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบกเบฑเบ™เบ”เบตเบ—เบตเปˆ PostgreSQL เบชเบทเบšเบ•เปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบšเบšเบชเบญเบšเบ–เบฒเบก.

Just-in-Time (JIT) - เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

เปƒเบ™ PostgreSQL 12 เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ LLVM เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก JIT เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ JIT เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบžเบฒเบเปƒเบ™, เปเบฅเบฐเบญเบฑเบ™เบ—เบตเบชเบญเบ‡, เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ (เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™ x + y) เปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเป€เบฅเบทเบญเบ (เบ—เบตเปˆเบ—เปˆเบฒเบ™เบกเบตเบซเบผเบฑเบ‡เบˆเบฒเบ SELECT), เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบกเบต WHERE clauses เปเบฅเบฐเบญเบทเปˆเบ™เป†เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ JIT เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ JIT เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ PostgreSQL 12, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ”เป‰เบงเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡, เปเบ•เปˆเบ‚เป‰เบญเบเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เบปเบ”เบชเบญเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ™ PostgreSQL 11, เป€เบŠเบดเปˆเบ‡เปเบ™เบฐเบ™เปเบฒ JIT, เป€เบžเบทเปˆเบญเบงเบฑเบ”เปเบ—เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเปเบฅเบฐเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบซเบเบฑเบ‡.

เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบเปˆเบฝเบงเบเบฑเบšเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเปƒเบ™ PostgreSQL 12?

PostgreSQL 12 เบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเป†เบซเบผเบฒเบเป‚เบ•เบ™, เบˆเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เปเป‰เบกเบนเบ™ JSON เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ SQL/JSON เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป„เบ›เบชเบนเปˆเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบซเบผเบฒเบเบ›เบฑเบ”เปƒเบˆเบ—เบตเปˆเบกเบตเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. clientcert=verify-full, เบชเป‰เบฒเบ‡เบ–เบฑเบ™เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ. เบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบญเบšเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš PostgreSQL 10, PostgreSQL 12 เบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบฅเบงเบกเบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบš. เบ—เปˆเบฒเบ™, เปเบ™เปˆเบ™เบญเบ™, เบชเบฒเบกเบฒเบ”เบกเบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡ - เบ—เบปเบ”เบชเบญเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบžเบฒเบเปƒเบ•เป‰เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบญเบเป„เบ”เป‰เป€เบฎเบฑเบ”เบเบฑเบš PostgreSQL 10. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ PostgreSQL 12 เบกเบตเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบซเบผเบฒเบเบเปˆเบงเบฒเบ—เบตเปˆเบ‚เป‰เบญเบเบ„เบฒเบ”เบซเบงเบฑเบ‡, เบขเปˆเบฒเบ‚เบตเป‰เบ„เป‰เบฒเบ™เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš. เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”, เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบญเบเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

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