DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ—เบตเปˆเบซเปˆเบฒเบ‡เป„เบ, เบเบฒเบ™เป‚เบเบเบเป‰เบฒเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡ DBMS [1]. เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡เบ•เป‰เบญเบ‡เป€เบšเบดเปˆเบ‡เปเบเบ‡เบเบฒเบ™เบฅเบถเบšเบซเบผเบทเบเป‰เบฒเบเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป„เบ›เบชเบนเปˆเบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบกเบตเบฅเบฒเบ„เบฒเปเบžเบ‡เบเบงเปˆเบฒ. เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบฅเบถเบšเบชเบญเบ‡เบชเบฒเบกเบฅเป‰เบฒเบ™เปเบ–เบง. เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบžเปเบชเบปเบกเบ„เบงเบ™, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเปเบฅเบฐเบกเบตเบ”เบฑเบ”เบŠเบฐเบ™เบตเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. "DELETE FROM table1 WHERE col1 = :value" - เบชเบดเปˆเบ‡เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ‡เปˆเบฒเบเบเบงเปˆเบฒ, เปเบกเปˆเบ™เบšเป?

เบงเบดเบ”เบตเป‚เบญ:

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

  • เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบ„เบฐเบ™เบฐเบเปเบฒเบกเบฐเบเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™ Highload เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ›เบตเบ—เปเบฒเบญเบดเบ”, i.e. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ 2007.

  • เปเบฅเบฐเบ‚เป‰เบญเบเป„เบ”เป‰เบขเบนเปˆเบเบฑเบš Postgres เบ•เบฑเป‰เบ‡เปเบ•เปˆเบ›เบต 2005. เปƒเบŠเป‰เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบซเบผเบฒเบเป‚เบ„เบ‡เบเบฒเบ™.

  • เบเบธเปˆเบกเบเบฑเบš RuPostges เบเบฑเบ‡เบ•เบฑเป‰เบ‡เปเบ•เปˆเบ›เบต 2007.

  • เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป€เบ›เบฑเบ™ 2100+ เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบขเบนเปˆ Meetup. เป€เบ›เบฑเบ™เบญเบฑเบ™เบ”เบฑเบš XNUMX เบ‚เบญเบ‡เป‚เบฅเบ เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบดเบงเบขเบญเบ, เป€เบญเบปเบฒเบŠเบฐเบ™เบฐ เบŠเบฒเบ™เบŸเบฃเบฒเบ™เบŠเบดเบชเป‚เบ เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™.

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

https://postgres.ai/ เปเบกเปˆเบ™เบšเปเบฅเบดเบชเบฑเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบ. เบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเปƒเบ™เบ—เบธเบฅเบฐเบเบดเบ”เบ‚เบญเบ‡เบงเบฝเบเบ‡เบฒเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ—เบตเปˆเบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบŠเป‰เบฒเบฅเบปเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ.

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf

เป€เบกเบทเปˆเบญเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰เบ‚เป‰เบญเบเบขเบนเปˆเบ—เบตเปˆ VLDB เปƒเบ™ Los Angeles. เบ™เบตเป‰เปเบกเปˆเบ™เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบ—เบตเปˆเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”เบเปˆเบฝเบงเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™. เปเบฅเบฐเบกเบตเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบงเปˆเบฒเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ” DBMS เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เปเบ•เปˆเบเบฑเบ‡เบฅเบถเบšเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบซเบปเบงเบ‚เปเป‰เปƒเบซเบกเปˆ.

เบกเบตเบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเปเบฅเบฐเบซเบผเบฒเบเปƒเบ™เป‚เบฅเบเบ‚เบญเบ‡ zettabytes - เบ™เบฑเป‰เบ™เปเบกเปˆเบ™ 1 petabytes. เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ„เบฒเบ”เบ„เบฐเป€เบ™เปเบฅเป‰เบงเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 000 zettabytes เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เป‚เบฅเบ. เปเบฅเบฐเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒเปเบฅเบฐเบซเบผเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

https://vldb2019.github.io/files/VLDB19-keynote-2-slides.pdf

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

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบ•เบตเบšเปƒเบซเบเปˆเปเบฅเบฐเป€เบ•เบตเบšเปƒเบซเบเปˆ. DELETE เบ›เบฐเบˆเปเบฒเบงเบฑเบ™เป€เบฅเบตเปˆเบกเป€เบฎเบฑเบ”เบงเบฝเบเบŠเป‰เบฒเบเบงเปˆเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบ.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบชเบญเบ‡เบชเบฒเบกเป€เบ”เบทเบญเบ™เบ•เปเปˆเบกเบฒเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰. เปเบฅเบฐเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เบปเบ™เบ™เบฑเป‰เบ™เป€เบŠเบปเบฒ เบซเบผเบทเบซเบเบธเป‰เบ‡เบเบฑเบšเบญเบฑเบ™เบญเบทเปˆเบ™, เปเบ™เบฐเบ™เบณเปƒเบซเป‰เบœเบนเป‰เบญเบทเปˆเบ™เบชเบปเปˆเบ‡เบกเบฑเบ™เบ„เบทเบ™.

เบฅเบฒเบงเป„เบ”เป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเปˆเบฝเบงเบเบฑเบš dev, เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™ - เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™ OK. เบ•เบฒเบกเบ—เปเบฒเบกเบฐเบŠเบฒเบ”, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบชเบดเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบชเบฐเบชเบปเบก. เบฅเบฒเบงเบเบงเบ”เป€เบšเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบˆเบฐเป€เบเบตเบ”เบซเบเบฑเบ‡เบ‚เบถเป‰เบ™เบ•เปเปˆเป„เบ›? เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเปเบ•เบเปเบเบเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ. เบกเบฑเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ•เบปเบเบฅเบปเบ‡. เบ—เบธเบเบ„เบปเบ™เบ•เบปเบเปƒเบˆ, เบšเปเปˆเบกเบตเปƒเบœเป€เบ‚เบปเป‰เบฒเปƒเบˆเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™. เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™ turns เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ DELETE เบ™เบตเป‰.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบกเบตเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบœเบดเบ”เบžเบฒเบ”เบšเป? เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบœเบดเบ”เบžเบฒเบ”. เบญเบฑเบ™เปƒเบ”เบชเบณเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”?

  • เบ•เบปเบงเบขเปˆเบฒเบ‡, เบšเปเปˆเบกเบตเบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™, i.e. เบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™ DBA เบšเปเปˆเป„เบ”เป‰เป€เบšเบดเปˆเบ‡เบกเบฑเบ™. เบฅเบฒเบงเบ—เบฑเบ™เบ—เบตเบˆเบฐเบŠเบญเบเบซเบฒเบšเบฑเบ™เบซเบฒเบ”เป‰เบงเบเบ•เบฒเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™, เปเบฅเบฐเบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบฅเบฒเบงเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™, เบšเปˆเบญเบ™เบ—เบตเปˆเบซเบผเบฒเบเบฅเป‰เบฒเบ™เบชเบฒเบเป„เบ”เป‰เบชเบฐเบชเบปเบก.

  • เบšเบฒเบ‡เบ—เบตเบžเบงเบเป€เบ‚เบปเบฒเบเบงเบ”เป€เบšเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบœเบดเบ”เบžเบฒเบ”.

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

  • เบซเบผเบทเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบœเบดเบ”เบžเบฒเบ”เบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเป‰เบฒเบเบˆเบฒเบ Postgres เป„เบ› MySQL.

  • เบซเบผเบทเบšเบฒเบ‡เบ—เบตเบกเบตเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบœเบดเบ”เบžเบฒเบ”เบเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™.

  • เบšเบฒเบ‡เบ—เบตเบญเบฒเบ”เบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเบดเบ‡เบ„เบปเบ™เปเบฅเบฐเบˆเป‰เบฒเบ‡เบ„เบปเบ™เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบšเป?

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบšเปเปˆเบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบš DBA. เบ–เป‰เบฒเบกเบต DBA, เบฅเบฒเบงเบˆเบฐเป€เบซเบฑเบ™เบซเบผเบฒเบเบฅเป‰เบฒเบ™เบชเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เปƒเบ”เป†เบเปเปˆเบˆเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒ: "เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™." เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เบขเบนเปˆเปƒเบ™ GitLab, GitHub เปเบฅเบฐเบˆเบฐเบกเบตเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบšเปเปˆเบกเบตเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบญเบฐเบ™เบธเบกเบฑเบ”เบˆเบฒเบ DBA เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ™เบตเป‰เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบเบฑเบšเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™, เปเบ™เปˆเบ™เบญเบ™ DBA เบˆเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒ: "เบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰. .โ€

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เปเบฅเบฐเบฅเบฒเบงเบˆเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบš disk IO เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบšเป‰เบฒ, เบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบฅเบฑเบญเบ, เปเบฅเบฐเบ—เปˆเบฒเบ™เบˆเบฐเบ•เบฑเบ™ autovacuum เบชเปเบฒเบฅเบฑเบšเบŠเปเปˆเบ‚เบญเบ‡เบ™เบฒเบ—เบต, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ™เบตเป‰เบšเปเปˆเบ”เบต.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

http://bit.ly/nancy-hl2018-2

เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบชเบญเบ‡ - เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบœเบดเบ”เบžเบฒเบ”. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบซเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฒเบเบชเบฐเบชเบปเบกเบขเบนเปˆเปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™, เปเบ•เปˆเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบšเปเปˆเป„เบ”เป‰เบชเบฐเบชเบปเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰, เปเบฅเบฐเบšเปเปˆเบกเบตเปƒเบœเบชเป‰เบฒเบ‡เบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ™เบตเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡. เบ•เบฒเบกโ€‹เบ™เบฑเป‰เบ™โ€‹เปเบฅเป‰เบง, เบกเบต 1 เบชเบฒเบโ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบœเบปเบ™โ€‹เบ‡เบฒเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เบงเปˆเบญเบ‡โ€‹เป„เบง.

เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบญเปˆเบญเบ™เปเบญ, i.e. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบšเปเปˆเป„เบ”เป‰เบˆเบฑเบšเบšเบฑเบ™เบซเบฒ. เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡ DB เบ—เบตเปˆเบžเบฝเบ‡เบžเปเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”.

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบšเบฒเบ‡เบ—เบตเบญเบธเบ›เบฐเบเบญเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบ”เบตเบšเป? เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบšเบดเปˆเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, latency jumped. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบกเปˆเบ™ 100%. เปเบ™เปˆเบ™เบญเบ™, เบ–เป‰เบฒเบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป„เบ” NVMe เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ. เปเบฅเบฐเบšเบฒเบ‡เบ—เบตเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเป„เบ”เป‰เบงเบฒเบ‡เบฅเบปเบ‡เบˆเบฒเบเบกเบฑเบ™.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเป€เบกเบ„, เบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบšเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เบ‡เปˆเบฒเบเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เบเบปเบเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปƒเบซเบกเปˆเปƒเบ™เบฎเบฒเบ”เปเบงเปƒเบซเบกเปˆ. เบชเบฐเบซเบผเบฑเบš. เปเบฅเบฐเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ”เบต. เบ‡เปˆเบฒเบเบžเปเบชเบปเบกเบ„เบงเบ™.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปเบ™เบงเปƒเบ”เบ—เบตเปˆเบˆเบฐเปเบ•เบฐเปƒเบชเปˆเปเบœเปˆเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ? เปเบฅเบฐเปƒเบ™เบ—เบตเปˆเบ™เบตเป‰, เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡ DBA, เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบปเบงเบ‚เปเป‰เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบเบฒเบ™เบ›เบฑเบšเบˆเบธเบ”เบเบงเบ”เบเบฒ. เบกเบฑเบ™ turns เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เบงเปˆเบฒโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบˆเบธเบ”โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹.

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ™ Postgres เปเบกเปˆเบ™เบŠเบฑเบเบŠเป‰เบฒ. เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเบชเปเบฒเบฅเบฑเบš 10-15 เบ›เบตเบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ. เปเบฅเบฐเบ”เปˆเบฒเบ™เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™.

เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบš Postgres เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, i.e. เบเบฒเบ™เบเบงเบ”เบชเบธเบ‚เบฐเบžเบฒเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบšเบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบซเบผเบฒเบ terabytes. เปเบฅเบฐเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบ”เบตเบงเปˆเบฒเบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบกเบตเบ”เปˆเบฒเบ™เบเบงเบ”เบเบฒเบขเบนเปˆเปƒเบ™เป€เบเบทเบญเบš 90% เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบต.

เบกเบฑเบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปเบ™เบงเปƒเบ”? เบกเบตเบชเบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เบ”เปˆเบฒเบ™เบเบงเบ”เบชเบฒเบกเบฒเบ”เบกเบฒเป‚เบ”เบเปเบปเบ”เป€เบงเบฅเบฒ, เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™ 10 เบ™เบฒเบ—เบต. เบซเบผเบทเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบกเบฒเป€เบกเบทเปˆเบญเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป€เบ•เบฑเบกเป„เบ›.

เปเบฅเบฐเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ max_wal_saze เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ 1 gigabyte. เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบ™เบตเป‰เบเปเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™ Postgres เบซเบผเบฑเบ‡เบˆเบฒเบ 300-400 megabytes. เบ—เปˆเบฒเบ™เป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบเบขเปˆเบฒเบ‡เปเบฅเบฐเบˆเบธเบ”เบเบงเบ”เบเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™.

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

เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เบกเบฒเบซเบ™เป‰เบญเบเบฅเบปเบ‡เป€เบฅเบทเป‰เบญเบเป†. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเบปเบเบชเบนเบ‡ max_wal_size. เปเบฅเบฐเบกเบฑเบ™เบˆเบฐเบกเบฒเบซเบ™เป‰เบญเบเบฅเบปเบ‡เป€เบฅเบทเป‰เบญเบเป†.

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบชเบญเบ‡เบŠเบธเบ”เบเปˆเบฝเบงเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.

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

เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบงเปˆเบฒเบกเบฑเบ™เบเบฒเบเบชเปเปˆเบฒเปƒเบ”เบชเบณเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ. เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒ disk IO เปเบกเปˆเบ™เบšเปเปˆเบ”เบตเบซเบผเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ WAL เบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”, เป€เบžเบฒเบฐเบงเปˆเบฒเบ™เบตเป‰เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบ. เบ‚เปเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบตเบˆเบธเบ”เบเบงเบ”เบเบฒเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบ”เบต.

เบ•เปเปˆเป„เบ›เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบก max_wal_size. เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบŠเป‰เบณ. เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เป€เบฅเบทเป‰เบกเบ„เบทเบ™. เปเบฅเบฐเบซเบผเบฒเบเป€เบ—เบทเปˆเบญ. เปƒเบ™เบซเบผเบฑเบเบเบฒเบ™, 10 เบˆเบธเบ”เปเบกเปˆเบ™เบ”เบต, เบšเปˆเบญเบ™เบ—เบตเปˆ 1, 2, 4, 8 gigabyte. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบญเบธเบ›เบฐเบเบญเบ™เบ„เบงเบ™เบˆเบฐเบ„เบทเบเบฑเบšเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™. เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบกเบตเปเบœเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เบˆเปเบฒเบ™เบงเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ”เบฝเบงเบเบฑเบ™, เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Postgres เบ”เบฝเบงเบเบฑเบ™.

เปเบฅเบฐเบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปเบฅเบเบ›เปˆเบฝเบ™เบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบงเปˆเบฒ DBMS เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบ™เบงเปƒเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบกเบฐเบซเบฒเบŠเบปเบ™เบ—เบตเปˆเบšเปเปˆเบ”เบต DELETE, เบกเบฑเบ™เบˆเบฐเบกเบตเบˆเบธเบ”เบเบงเบ”เบเบฒเปเบ™เบงเปƒเบ”.

เบ”เปˆเบฒเบ™เบเบงเบ”เปƒเบ™เบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบเปเบกเปˆเบ™เบ”เปˆเบฒเบ™เบเบงเบ”เบเบฒ.

เบ•เบปเบงเบขเปˆเบฒเบ‡: เบฅเบปเบšเบซเบผเบฒเบเบฅเป‰เบฒเบ™เปเบ–เบงเป‚เบ”เบเบ”เบฑเบ”เบชเบฐเบ™เบต, เปเบ–เบงเบ–เบทเบ "เบเบฐเปเบˆเบเบเบฐเบˆเบฒเบ" เป„เบ›เบ—เบปเปˆเบงเปœเป‰เบฒ.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡. เปเบฅเบฐเบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ 1 gigabyte เบชเปเบฒเบฅเบฑเบš max_wal_size, เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบซเบผเบฒเบเบงเปˆเบฒเปเบœเปˆเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป„เบ›เบซเบฒเบŠเบฑเป‰เบ™เบงเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ. เบฎเบนเบšเบžเบฒเบšเบ™เบตเป‰เปเบกเปˆเบ™เบญเบฒเบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบ„เบปเบ™เป€เบˆเบฑเบšเบ—เบตเปˆเป€เบˆเบฑเบšเบซเบผเบฒเบ, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบฅเบฒเบงเบฎเบนเป‰เบชเบถเบเบšเปเปˆเบ”เบตเปเบ—เป‰เป†. เปเบฅเบฐโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบ”เบฝเบงโ€‹, เบกเบตโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹เบ‚เบญเบ‡โ€‹เบซเบผเบฒเบโ€‹เบฅเป‰เบฒเบ™โ€‹เบชเบฒเบโ€‹.

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบšเปˆเบญเบ™เบ—เบตเปˆ 16 gigabytes, เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเปเบ‚เป‰เบงเป„เบ”เป‰เบซเบกเบปเบ”เปเบฅเป‰เบง. เปเบ‚เป‰เบงเปเบกเปˆเบ™เบ”เบตเบ‚เบถเป‰เบ™เปเบฅเป‰เบง, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบ„เบฒเบฐเป€เบžเบ”เบฒเบ™, เปเบ•เปˆเบšเปเปˆเบ”เบต. เบกเบตเป€เบชเบฅเบตเบžเบฒเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบ‚เบงเบฒเปเบกเปˆเบ™เบšเบฑเบ™เบ—เบถเบ. เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ - เป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡เบ—เบตเบชเบญเบ‡. เปเบฅเบฐเบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบซเบฒเบเปƒเบˆเบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบกเบทเปˆเบญ 16 gigabytes.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เปเบฅเบฐเบšเปˆเบญเบ™เบ—เบตเปˆ 64 gigabytes เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบงเปˆเบฒเบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เปเบฅเป‰เบงเปเบ‚เป‰เบงเป„เบ”เป‰เบ–เบทเบเบญเบญเบเบชเบฝเบ‡, เบกเบตเป‚เบญเบเบฒเบ”เบซเบผเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบขเบนเปˆเบฅเบญเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบญเบทเปˆเบ™เป†เปเบฅเบฐเป€เบฎเบฑเบ”เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเบฑเบšเปเบœเปˆเบ™.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบˆเบถเปˆเบ‡?

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

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

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

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เปเบ•เปˆเบงเปˆเบฒเบšเปเปˆเปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”. เบซเบ™เป‰เบฒเปเบกเปˆเบ™ 8 เบเบดเป‚เบฅเป„เบšเปƒเบ™ Postgres เปเบฅเบฐ 4 เบเบดเป‚เบฅเป„เบšเปƒเบ™ Linux. เปเบฅเบฐเบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ full_page_writes. เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ›เบดเบ”เบกเบฑเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ—เบตเปˆเบžเบฝเบ‡เปเบ•เปˆเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบˆเบฐเบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบ–เป‰เบฒเบกเบฑเบ™เบ‚เบฑเบ”.

เบžเบถเบ”เบ•เบดเบเปเบฒเบเบฒเบ™เบ‚เบฝเบ™ WAL เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเปเบกเปˆเบ™เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบˆเบธเบ”เบเบงเบ”เบเบฒเปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบ›เปˆเบฝเบ™เบซเบ™เป‰เบฒเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”, เบซเบ™เป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”, i.e. เบ—เบฑเบ‡เบซเบกเบปเบ” 8 เบเบดเป‚เบฅเป„เบš, เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ›เปˆเบฝเบ™เบซเบ™เป‰เบฒ. เป€เบชเบฑเป‰เบ™, เป€เบŠเบดเปˆเบ‡เบกเบตเบ™เป‰เปเบฒเบซเบ™เบฑเบ 100 bytes . เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบ‚เบฝเบ™เบฅเบปเบ‡เปƒเบ™เบซเบ™เป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”.

เปƒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เปเปˆเบกเบฒเบˆเบฐเบกเบตเบžเบฝเบ‡เปเบ•เปˆ tuple เบชเบฐเป€เบžเบฒเบฐ, เปเบ•เปˆเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบฅเบปเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡.

เปเบฅเบฐ, เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก, เบ–เป‰เบฒเบˆเบธเบ”เบเบงเบ”เบเบฒเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฒเบ scratch เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบเบนเป‰เบซเบ™เป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”. เบ”เป‰เบงเบเบเบฒเบ™เบเบงเบ”เบเบฒเป€เบฅเบทเป‰เบญเบเป†, เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบเปˆเบฒเบ‡เบœเปˆเบฒเบ™เบซเบ™เป‰เบฒเบ”เบฝเบงเบเบฑเบ™, full_page_writes = on เบˆเบฐเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™, i.e. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ WAL เบซเบผเบฒเบเบ‚เบถเป‰เบ™. เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปเบกเปˆเบ™เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ replicas, เป„เบ›เบฎเบงเบšเบฎเบงเบก, to disk.

เปเบฅเบฐ, เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบชเบญเบ‡เบŠเป‰เปเบฒเบŠเป‰เบญเบ™.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบก max_wal_size, เบกเบฑเบ™เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡ checkpoint เปเบฅเบฐ wal writer. เปเบฅเบฐเบ™เบฑเป‰เบ™เบเบดเปˆเบ‡เปƒเบซเบเปˆ.

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

เบžเบงเบเป€เบฎเบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เปเบฅเบฐเป€เบšเบดเปˆเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบˆเบฐเบชเปเบฒเป€เบฅเบฑเบ”, เบžเบงเบเป€เบฎเบปเบฒเบ‚เป‰เบฒ -9 Postgres เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡.

เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบกเบฑเบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ™เบตเป‰เบ”เบปเบ™เบ›เบฒเบ™เปƒเบ”, i.e. เบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”เบกเบฑเบ™เบˆเบฐ REDO เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ”เบตเบ™เบตเป‰.

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

เบžเบงเบเป€เบฎเบปเบฒเบงเบฑเบ”เปเบ—เบเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ” max_wal_size เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบ–เป‰เบฒ max_wal_size เปเบกเปˆเบ™ 64 gigabytes, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เบตเบ™เบ‚เบถเป‰เบ™เป€เบ›เบฑเบ™เป€เบงเบฅเบฒ 10 เบ™เบฒเบ—เบต. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”เบงเปˆเบฒเบกเบฑเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบซเบผเบทเบšเปเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบ–เบฒเบกเบ—เบธเบฅเบฐเบเบดเบ”. เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฐเปเบ”เบ‡เบฎเบนเบšเบ™เบตเป‰เปƒเบซเป‰เบœเบนเป‰เบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเปƒเบ™เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เปเบฅเบฐเบ–เบฒเบกเบงเปˆเบฒ, "เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เบญเบ™เบขเบนเปˆเบ”เบปเบ™เบ›เบฒเบ™เปƒเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบกเบตเบšเบฑเบ™เบซเบฒ? เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เบญเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบš 3-5 เบ™เบฒเบ—เบตเป„เบ”เป‰เบšเป? เปเบฅเบฐเบ—เปˆเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ.

เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบˆเบธเบ”เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ. เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบชเบญเบ‡เบชเบฒเบกเบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบš Patroni เปƒเบ™เบเบญเบ‡เบ›เบฐเบŠเบธเบก. เปเบฅเบฐเบšเบฒเบ‡เบ—เบตเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบกเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™ autofailover เบชเปเบฒเบฅเบฑเบš Postgres. GitLab เปเบฅเบฐ Data Egret เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰.

เปเบฅเบฐเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบต autofailover เป€เบ‚เบปเป‰เบฒเบกเบฒเปƒเบ™ 30 เบงเบดเบ™เบฒเบ—เบต, เปเบฅเป‰เบงเบšเบฒเบ‡เบ—เบตเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เบญเบ™เบขเบนเปˆ 10 เบ™เบฒเบ—เบต? เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เปˆเบฝเบ™เป„เบ› replica เป‚เบ”เบเบˆเบธเบ”เบ™เบตเป‰, เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเบ”เบต. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบˆเบธเบ”โ€‹เบžเบดโ€‹เป€เบชเบ”. เบ‚เป‰เบญเบเบšเปเปˆเบฎเบนเป‰เบ„เบณเบ•เบญเบšเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเบฎเบนเป‰เบชเบถเบเบงเปˆเบฒเบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ‚เบญเบ‡เบญเบธเบ›เบฐเบ•เบดเป€เบซเบ”.

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

เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบเบฑเบ‡โ€‹เบ„เบปเบ‡โ€‹เบˆเบฐโ€‹เบšเปเปˆโ€‹เป„เบ›โ€‹เป„เบโ€‹เป€เบเบตเบ™โ€‹เป„เบ›, เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบกเบต autofailover. เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš, เบกเบนเบ™เบ„เปˆเบฒเป€เบŠเบฑเปˆเบ™ 64, 100 gigabyte เปเบกเปˆเบ™เบ„เปˆเบฒเบ—เบตเปˆเบ”เบต. เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบกเบฑเบ™เบเปเปˆเบกเบตเบกเบนเบ™เบ„เปˆเบฒเป€เบฅเบทเบญเบเบซเบ™เป‰เบญเบเบฅเบปเบ‡. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ” subtle.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบญเบตเบ, เบ•เบปเบงเบขเปˆเบฒเบ‡, max_wal_size =1, 8, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบกเบฐเบซเบฒเบŠเบปเบ™เบซเบผเบฒเบเบ„เบฑเป‰เบ‡. เบ—เปˆเบฒเบ™เป„เบ”เป‰เป€เบฎเบฑเบ”เบกเบฑเบ™. เปเบฅเบฐเบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบกเบฑเบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฅเบถเบšเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบฅเป‰เบง. เบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”?

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

เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป‚เบŠเบเบ”เบต. เบ–เป‰เบฒ, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบกเบฑเบ™เป€เบงเบปเป‰เบฒเบขเบนเปˆเบ™เบตเป‰ "BEGIN, DELETE, ROLLBACK", เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ” DELETE เบญเบตเบเบ„เบฑเป‰เบ‡. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบเบปเบเป€เบฅเบตเบเบกเบฑเบ™เป€เบญเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบญเบตเบ. เปเบฅเบฐเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบขเบนเปˆเบเบฑเบšเบ—เปˆเบฒเบ™, เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ™เบญเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ”เบฝเบงเบเบฑเบ™. เป€เบˆเบปเป‰เบฒเบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบšเบงเบก. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เบŠเป‰เบณโ€‹เปƒเบ™โ€‹เป„เบฅโ€‹เบเบฐ DELETEs เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบง.

DELETE เบเบฑเบš ROLLBACK เบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบˆเบธเบ”เบเบงเบ”เบเบฒ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบกเบตเบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เปเบœเปˆเบ™เบ—เบตเปˆเบกเบตเบ–เบฑเบ™เบซเบ™เบถเปˆเบ‡ "i". Postgres เบกเบตเบ–เบฑเบ™เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”. เบžเบงเบเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบšเปเปˆเป€เบซเบฑเบ™เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบˆเบฐเบ–เบฒเบกเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™: ctid, xmid, xmax.

Ctid เปเบกเปˆเบ™เบ—เบตเปˆเบขเบนเปˆเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบ. เบซเบ™เป‰เบฒเบชเบนเบ™, tuple เบ—เปเบฒเบญเบดเบ”เปƒเบ™เบซเบ™เป‰เบฒ.

เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบ ROOLBACK, tuple เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ”เบฝเบงเบเบฑเบ™. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบžเบฐเบเบฒเบเบฒเบกเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบกเบฑเบ™เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเบ”เบฝเบงเบเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ•เบปเป‰เบ™เบ•เป.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

Xmax เปเบกเปˆเบ™เป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เป€เบชเบเบŠเบตเบงเบดเบ”เบ‚เบญเบ‡ tuple. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ—เบฑเบšเบ•เบฒ, เปเบ•เปˆ Postgres เบฎเบนเป‰เบงเปˆเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเป„เบ”เป‰เบ–เบทเบเบกเป‰เบงเบ™เบ„เบทเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™ 0 เบซเบผเบทเบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบกเป‰เบงเบ™เบ„เบทเบ™. เบ™เบตเป‰เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบญเบตเบเบ„เบฑเป‰เบ‡ DELETE เปเบฅเบฐเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบ‚เบญเบ‡เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบธเบเบเบฒเบ.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบ™เบตเป‰เปเบกเปˆเบ™เบเปˆเบฝเบงเบเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก. เบเปˆเบฝเบงเบเบฑเบš DBA, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบชเบฐเป€เบซเบกเบตเบ•เปเบฒเบ™เบดเบ•เบดเบ•เบฝเบ™เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบชเปเบฒเบฅเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰: "เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบตเปˆเบเบฒเบงเบ™เบฒเบ™เปเบฅเบฐเบซเบเบธเป‰เบ‡เบเบฒเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง?". เบ™เบตเป‰เปเบกเปˆเบ™เบซเบปเบงเบ‚เปเป‰ perpendicular เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบกเบปเบ”. เป€เบ„เบตเบโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบซเบฒเบ™, เปเบฅเบฐโ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒ.

เปเบ™เปˆเบ™เบญเบ™, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เปเบเบเบญเบญเบเป€เบ›เบฑเบ™เบ•เปˆเบญเบ™. เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เปเบˆเป‰เบ‡. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบšเปเปˆเบ—เปเบฒเบฅเบฒเบเบเบฒเบ™ DELETE เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเปเบฒเบฅเบฑเบš heap เบ‚เบญเบ‡เบฅเป‰เบฒเบ™เบชเบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™. เบกเบฑเบ™เบˆเบฐเบ–เบทเบเป€เบฎเบฑเบ”เบชเปเบฒเบฅเบฑเบš 20 เบ™เบฒเบ—เบต, เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเบ™เบญเบ™เบฅเบปเบ‡. เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เบเปเปˆเป€เบฎเบฑเบ”เบœเบดเบ”เบžเบฒเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบขเบนเปˆเปƒเบ™เบšเปเบฅเบดเบชเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบ.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบˆเบถเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบ—เปเบฒเบฅเบฒเบ?

  • เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเปเบœเปˆเบ™เปเบ‚เบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบซเป‰เบกเบฑเบ™เบŠเป‰เบฒเบฅเบปเบ‡. เปเบฅเบฐเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ–เบทเบเปเบเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบเบฒเบ™เบขเบธเบ”เบŠเบปเปˆเบงเบ„เบฒเบง, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบŠเป‰เบฒเบฅเบปเบ‡ throttling.

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

https://postgres.ai/products/joe/

เบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ. เบ‚เป‰เบญเบเบกเบฑเบเบˆเบฐเป€เบซเบฑเบ™เบงเปˆเบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ–เบฒเบกเบงเปˆเบฒ: "เบ‚เป‰เบญเบเบ„เบงเบ™เป€เบฅเบทเบญเบเบ‚เบฐเบซเบ™เบฒเบ”เบŠเบธเบ”เปƒเบ”?".

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

เบ‚เป‰เบญเบเบกเบตเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ: เป€เบญเบปเบฒเบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบˆเบปเป‰เบฒเป€เบฎเบฑเบ”เป„เบ”เป‰, เปเบ•เปˆเบขเปˆเบฒเป„เบ›เบซเบผเบฒเบเบเบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต.

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

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

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

เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™ DELETE เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ•เบฒเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบ”เบปเบฒ, เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™.

เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเปเบœเบ™เบเบฒเบ™เปเบกเปˆเบ™เบ”เบตเป€เบฅเบตเบ”. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบšเบดเปˆเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบเบ™โ€‹เบ”เบฑเบ”โ€‹เบŠเบฐโ€‹เบ™เบตโ€‹, เบ”เบฑเบ”โ€‹เบŠเบฐโ€‹เบ™เบตโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆ scan เปเบกเปˆเบ™โ€‹เบ”เบตเบโ€‹เบงเปˆเบฒโ€‹. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเบ™เบงเบ™เบ™เป‰เบญเบเป†เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡. เปเบฅเบฐเบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบงเบดเบ™เบฒเบ—เบตเบชเปเบฒเป€เบฅเบฑเบ”. เบชเบธเบ”เบเบญเบ”.

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

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

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰ iterate เบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบตเบชเบดเปˆเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ›เบฑเบ™ bot เบญเบทเปˆเบ™เป†. เบฅเบฒเบงเบžเป‰เบญเบกเปเบฅเป‰เบง. เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบผเบฒเบเบชเบดเบšเบ„เบปเบ™เบ•เปเปˆเบกเบทเป‰. เปเบฅเบฐเบฅเบฒเบงเบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ terabyte เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ•เบฒเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปƒเบ™ 30 เบงเบดเบ™เบฒเบ—เบต, เบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡. เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบถเบšเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เปเบฅเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒ RESET, เปเบฅเบฐเบฅเบถเบšเบกเบฑเบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ—เบปเบ”เบฅเบญเบ‡เบเบฑเบšเบกเบฑเบ™เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰. เบ‚เป‰เบญเบเป€เบซเบฑเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ‚เบญเบ‡เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบกเบฑเบ™เปเบฅเป‰เบง.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

https://docs.gitlab.com/ee/development/background_migrations.html

เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เปเบกเปˆเบ™เบซเบเบฑเบ‡? เบ‚เป‰เบญเบเป€เบซเบฑเบ™ 3 เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ—เบตเปˆเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเบนเปˆเปƒเบ™เบŠเบธเบ”เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰.

เบญเบฑเบ™เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเบกเบต ID เบ•เบปเบงเป€เบฅเบ. เปเบฅเบฐเปƒเบซเป‰เบ—เปเบฒเบฅเบฒเบเบกเบฑเบ™เบฅเบปเบ‡เป€เบ›เบฑเบ™เป„เบฅเบเบฐเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบชเบดเปˆเบ‡เบ™เบฑเป‰เบ™. เบ‚เปเป‰เป€เบชเบเปเบกเปˆเบ™เบˆเบฐเปเบˆเป‰เบ‡. เปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”, เบžเบงเบเป€เบฎเบปเบฒเบญเบฒเบ”เบˆเบฐเบกเบต 100 เป€เบชเบฑเป‰เบ™เบ‚เบญเบ‡เบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เปƒเบ™ 5 เป€เบชเบฑเป‰เบ™เบ—เบตเบชเบญเบ‡เบซเบผเบทเบšเปเปˆเบกเบตเบ—เบฑเบ‡เบซเบกเบปเบ”, เบซเบผเบทเบ—เบฑเบ‡เบซเบกเบปเบ” 1 เป€เบชเบฑเป‰เบ™เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ. เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบšเปเปˆเบชเบฐเป€เบซเบกเบตเบเบฑเบ™เบซเบผเบฒเบ, เปเบ•เปˆเบกเบฑเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบ—เปเบฒเบฅเบฒเบ. เบžเบงเบเป€เบ‚เบปเบฒเป€เบญเบปเบฒเบšเบฑเบ”เบ›เบฐเบˆเปเบฒเบ•เบปเบงเบชเบนเบ‡เบชเบธเบ”เปเบฅเบฐเบ•เบตเบกเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™ naive.

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

เปƒเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบ—เปเบฒเบญเบดเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เปƒเบ™เบซเบผเบฒเบเบซเบปเบงเบ‚เปเป‰. เบกเบฑเบ™เบšเปเปˆเบเบฒเบ.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

https://medium.com/@samokhvalov/how-partial-indexes-affect-update-performance-in-postgres-d05e0052abc

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

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง, index only scan เปเบกเปˆเบ™เป„เบงเบเปˆเบงเบฒ index scan.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบŠเบญเบเบซเบฒ ID เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบขเปˆเบฒเบ‡เป„เบงเบงเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบญเบปเบฒเบญเบญเบ. BATCH_SIZE เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบเบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเป„เบ”เป‰เบฎเบฑเบšเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบžเบดเป€เบชเบ”เปเบฅเบฐเบ—เบฑเบ™เบ—เบต hack เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบ–เบทเบเบฅเบฑเบญเบเป€เบžเบทเปˆเบญเบงเปˆเบฒเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเบฅเบฑเบญเบเปเบฅเป‰เบง, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบฅเบฑเบญเบเบžเบงเบเบกเบฑเบ™, เปเบ•เปˆเบเป‰เบฒเบเบญเบญเบเป„เบ›เปเบฅเบฐเป€เบญเบปเบฒเบ•เบปเบงเบ•เปเปˆเป„เบ›. เบ™เบตเป‰เปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบ‚เป‰เบฒเบกเบฅเบฑเบญเบ. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบžเบดเป€เบชเบ”เบ‚เบญเบ‡ Postgres เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบซเบผเบฒเบเบซเบปเบงเบ‚เปเป‰เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปƒเบ™เบซเบ™เบถเปˆเบ‡เบ™เป‰เปเบฒ. เปเบฅเบฐเปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบกเบต CTE - เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบซเบ™เบถเปˆเบ‡. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบฒเบ™เบฅเบถเบšเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบŠเบฑเป‰เบ™เบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡ CTE เบ™เบตเป‰ - returning *. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡ id, เปเบ•เปˆเบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒ *เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบเปƒเบ™เปเบ•เปˆเบฅเบฐเป€เบชเบฑเป‰เบ™.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฑเบ™? เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบฒเบเบ‡เบฒเบ™เบ„เบทเบ™. เบ”เบฝเบงเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฅเบถเบšเบซเบผเบฒเบเบชเบฒเบเปเบฅเป‰เบง. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบŠเบฒเบเปเบ”เบ™เบ•เบฒเบก ID เบซเบผเบทเป‚เบ”เบ created_at เปเบšเบšเบ™เบตเป‰. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰ minโ€‹, เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹. เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบญเบทเปˆเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” stuff เบซเบผเบฒเบเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เปเบฅเบฐเบกเบฑเบ™เบชเบฐเบ”เบงเบเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒ.

เบกเบตเบšเบฑเบ™เบ—เบถเบเบซเบ™เบถเปˆเบ‡เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบ”เบฑเบ”เบŠเบฐเบ™เบต. เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ”เบฑเบ”เบชเบฐเบ™เบตเบžเบดเป€เบชเบ”เบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบ—เปเบฒเบฅเบฒเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ heap เบžเบฝเบ‡เปเบ•เปˆ tuples. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, Postgres เบกเบตเบชเบฐเบ–เบดเบ•เบดเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เปƒเบ™ pg_stat_user_tables เบชเปเบฒเบฅเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบฎเป‰เบญเบ™เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบซเบผเบทเบšเปเปˆ.

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

เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”, เบงเบดเบ—เบตเบเบฒเบ™เปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™ batches เปเบฅเบฐเบซเบ™เปเปˆเป„เบกเป‰เบชเปˆเบงเบ™เบซเบผเบฒเบเปƒเบ™ batches เบ”เป‰เบงเบเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบซเบ™เบถเปˆเบ‡, เบฅเบปเบšเป€เบฅเบฑเบเบ™เป‰เบญเบ, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบง https://gitlab.com/snippets/1890447

เบชเบฐเบเบฑเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” - https://gitlab.com/snippets/1889668

เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบเบฑเบ” - https://gitlab.com/snippets/1890428

เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” #5 เปเบกเปˆเบ™เบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡. Nikolai เบˆเบฒเบ Okmeter เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก Postgres. เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก Postgres เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบšเปเปˆเบกเบต. เบšเบฒเบ‡เบ„เบปเบ™เบขเบนเปˆเปƒเบเป‰เบเบงเปˆเบฒ, เบšเบฒเบ‡เบ„เบปเบ™เบขเบนเปˆเป„เบเบเบงเปˆเบฒ. Okmeter เปเบกเปˆเบ™เบขเบนเปˆเปƒเบเป‰เบžเปเบ—เบตเปˆเบˆเบฐเบชเบปเบกเบšเบนเบ™เปเบšเบš, เปเบ•เปˆเบกเบตเบซเบผเบฒเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ›เปเบฅเบฐเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบก. เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰.

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

เบ–เป‰เบฒเบกเบต IO เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เบกเบฑเบ™เบˆเบฐเปเบˆเป‰เบ‡เบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ”เบต.

เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบงเป€เบเบตเบ™เป„เบ›. เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบงเบšเปเปˆเบ„เบงเบ™เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบขเบนเปˆเปƒเบ™ OLTP. เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš snippet เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบญเบปเบฒ snippet เบ™เบตเป‰เปเบฅเบฐเปเบฅเป‰เบงเบ•เบดเบ”เบ•เบฒเบกเบšเบฒเบ‡เบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบง.

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

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

เปเบฅเบฐเบšเบฑเบ™เบซเบฒเบ•เบฑเบ™. เบ›เปˆเบฒ เป„เบกเป‰ เบ•เบฑเบ™. เบ‚เป‰เบญเบเบกเบฑเบเป€เบญเบปเบฒเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบˆเบฒเบเปƒเบœเบœเบนเป‰เบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบกเบฑเบ™. เบ—เบตเปˆเบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบญเบปเบฒ CTE recursive เป€เบขเบฑเบ™เบˆเบฒเบ Data Egret เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ›เปˆเบฒเป„เบกเป‰เบ‚เบญเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰เบฅเบฑเบญเบ. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบ”เบต. เปเบฅเบฐเบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก. เปเบ•เปˆเบ™เบตเป‰เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡. เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบเบฒเบ™ statement_timeout เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡. เปเบฅเบฐ lock_timeout เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบฅเบงเบก.

เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ•เบปเป‰เบ™เบ•เปเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡. เบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเป€เบ•เบฑเบเบ™เบดเบเบšเปเปˆเป„เบ”เป‰เบ”เบถเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฅเบ 2 - เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบเบงเบ”เบขเบนเปˆเบšเปˆเบญเบ™เบœเบดเบ”.

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

เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบšเปเปˆเบกเบต. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบเบงเบ”โ€‹เบเบฒโ€‹เบ—เบตเปˆโ€‹เบ™เบฑเป‰เบ™โ€‹, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เป€เบซเบฑเบ™โ€‹เบกเบฑเบ™โ€‹เบ•เบปเบงโ€‹เป€เบญเบ‡โ€‹. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป„เบ”เป‰เป€เบซเบฑเบ™เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบต DBA เบ–เป‰เบฒเบฅเบฒเบงเบเบงเบ”เป€เบšเบดเปˆเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบ”เบต, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ”เบฝเบงเบเบฑเบ™. เบฅเบฒเบงเบˆเบฐเป„เบ”เป‰เป€เบซเบฑเบ™เบ„เบงเบฒเบกเป€เบชเบทเปˆเบญเบกเป‚เบŠเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบฅเบฐเบฅเบฒเบงเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบฅเบฐเบญเบฒเบ.

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

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

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

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบต 10 terabytes, เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฑเบ‡ 10 terabytes. เปเบฅเบฐเบกเบตเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ 10 terabyte เบžเป‰เบญเบกเบเบฑเบ™, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ 10 เบ„เบปเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบžเป‰เบญเบกเบเบฑเบ™. เบ—เบธเบเบ„เบปเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™. เบชเบฒเบกเบฒเบ”เบฅเบถเบš, เบฅเบธเบ”เบฅเบปเบ‡, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ™เบฑเป‰เบ™เบ„เบทเบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™เบกเบทเป‰เบญเบทเปˆเบ™.

DELETE เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡. Nikolay Samokhvalov (Postgres.ai)

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

เบ•เบปเบงเบขเปˆเบฒเบ‡: เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ 5 terabyte, เป„เบ”เป‰เบฎเบฑเบšเบชเปเบฒเป€เบ™เบปเบฒเปƒเบ™เป€เบงเบฅเบฒเบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 30 เบงเบดเบ™เบฒเบ—เบต. เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบกเบฑเบ™เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ” terabytes.

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

เบ„เปเบฒเบ–เบฒเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™

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

เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ”เบตเบซเบผเบฒเบเปเบฅเบฐเป€เบ›เบฑเบ™เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบ”เบตเบซเบผเบฒเบ. เบกเบฑเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆ pg_repack เป€เบฎเบฑเบ”, เบกเบฑเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบฎเบฑเบ” IDs 4 bytes. เบเบญเบšเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเป„เบ”เป‰เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เบชเบญเบ‡เบชเบฒเบกเบ›เบตเบเปˆเบญเบ™, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเปเบœเปˆเบ™เป„เบ”เป‰เป€เบ•เบตเบšเปƒเบซเบเปˆเบ‚เบถเป‰เบ™, เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเปเบ›เบ‡เป€เบ›เบฑเบ™ 8 bytes.

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

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบšเบดเปˆเบ‡ pg_repack เปƒเบ™ GitHub, เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญเบกเบตเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™ ID เบˆเบฒเบ int 4 เป€เบ›เบฑเบ™ int 8, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบตเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ pg_repack เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เบ™เบตเป‰เบเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เปเบ•เปˆเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™ hack เป€เบฅเบฑเบเบ™เป‰เบญเบ, เปเบ•เปˆเบกเบฑเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบŠเบเปเบŠเบ‡เปƒเบ™ โ€‹โ€‹trigger เบ—เบตเปˆ pg_repack เปƒเบŠเป‰เปเบฅเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒ: "เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰", i.e. เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเป‚เบญเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™. เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบฅเบฒเบงเบžเบฝเบ‡เปเบ•เปˆเบ›เปˆเบฝเบ™เปเบฅเบฐเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบกเบฑเบ™.

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

Bloat เปเบกเปˆเบ™เบšเปเปˆเบกเบต, เบกเบฑเบ™เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ”เบต. เปเบ•เปˆเบ‚เป‰เบญเบเบฎเบนเป‰เบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบˆเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, i.e. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบปเปˆเบงเป„เบ›. เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบˆเบปเป‰เบฒเบ•เบดเบ”เบ•เปเปˆเบเบฑเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ™เบตเป‰. เบกเบฑเบ™เบ‚เบฝเบ™เปƒเบ™ Python, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ”เบต.

เบ‚เป‰เบญเบเบกเบฒเบˆเบฒเบเป‚เบฅเบเบ‚เบญเบ‡ MySQL เป€เบฅเบฑเบเบ™เป‰เบญเบ, เบชเบฐเบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบกเบฒเบŸเบฑเบ‡. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰.

เปเบ•เปˆเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบต 90%. เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบต 5%, เบกเบฑเบ™เบเปเปˆเบšเปเปˆเบ”เบตเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบกเบฑเบ™.

เบ‚เบญเบšเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™! เบ–เป‰เบฒเบšเปเปˆเบกเบตเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบชเปเบฒเป€เบ™เบปเบฒเบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡ prod, เบกเบต algorithm เบซเบผเบทเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เป‚เบซเบผเบ”เบซเบผเบทเบ‚เบฐเบซเบ™เบฒเบ”เบšเป?

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

เบ‚เบญเบšเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™! เบ—เปˆเบฒเบ™เบ—เปเบฒเบญเบดเบ”เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบกเบต Postgres เป€เบขเบฑเบ™, เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบฅเบฐเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เปเบ•เปˆเบงเปˆเบฒเบกเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เป„เบกเป‰เบ—เปˆเบญเบ™เบ—เบฑเบ‡ เปเบปเบ” เป‚เบ”เบเปเบฅเบฐเปƒเบซเบเปˆ. เบ™เบตเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบ‚เบฑเบ”เปเบเป‰เบ‡เบเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡ Postgres เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เป€เบŠเบดเปˆเบ‡เบšเบฒเบ‡ DELETE deferent เบˆเบฐเบ›เบฒเบเบปเบ”เบซเบผเบทเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบ„เบงเบ™เบˆเบฐเบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปเปˆเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบžเบฐเบเบฒเบเบฒเบก smear เบเบฑเบšเบšเบฒเบ‡เบงเบดเบ—เบตเปเบ›เบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเบ™เบตเป‰?

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบงเบปเป‰เบฒเปƒเบ™ SQL เป€เบžเบทเปˆเบญเบฅเบถเบšเบซเบผเบทเบ›เบฑเบšเบ›เบธเบ‡เบšเบฑเบ™เบ—เบถเบเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเปƒเบ™เบซเบ™เบถเปˆเบ‡เบ—เบธเบฅเบฐเบเปเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ Postgres เปเบˆเบเบขเบฒเบเบกเบฑเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เป„เบ”เป‰เปเบ™เบงเปƒเบ”? เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเบเบฑเบ”เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบˆเบฐเป€เบฎเบฑเบ”เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบฅเบฑเบญเบเปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เป€เบฎเบฑเบ”เบ”เป‰เบงเบเบ”เบฑเบ”เบŠเบฐเบ™เบต.

เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบˆเบธเบ”โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹. เบกเบทเป‰เบซเบ™เบถเปˆเบ‡เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™. เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบเปเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ„เปเบฒเบ–เบฒเบก.

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

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบซเบผเบฑเบเบเบฒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™. เบกเบต bot เบญเบทเปˆเบ™ Nancy, เบ”เป‰เบงเบเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบเบฒเบ™เบ›เบฑเบšเบˆเบธเบ”เบเบงเบ”เบเบฒเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบกเบทเป‰เบซเบ™เบถเปˆเบ‡เบกเบฑเบ™เบˆเบฐเบขเบนเปˆเปƒเบ™ Postgres เบšเป? เบ‚เป‰เบญเบเบšเปเปˆเบฎเบนเป‰, เบกเบฑเบ™เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบ›เบถเบเบชเบฒเบซเบฒเบฅเบทเป€เบ—เบทเปˆเบญ. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบขเบนเปˆเป„เบเบˆเบฒเบเบ™เบฑเป‰เบ™. เปเบ•เปˆเบกเบตเบ™เบฑเบเบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเปƒเบซเบกเปˆ. เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ”เบฑเบ”เบŠเบฐเบ™เบตเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบกเบตเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ›เบฑเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบกเบฑเบ™เป€เบฅเบทเบญเบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เปเบ•เปˆโ€‹เบฅเบฒเบงโ€‹เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เบ—เบฑเบ™โ€‹เบ›เบฑเบšโ€‹เบˆเบธเบ”โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เปƒเบซเป‰โ€‹เป€เบˆเบปเป‰เบฒโ€‹เป€เบ—เบทเปˆเบญ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบกเบฑเบ™เบˆเบฐเป€เบฅเบทเบญเบเป€เบญเบปเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, shell buffer, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

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

เบชเบฐโ€‹เบšเบฒเบโ€‹เบ”เบตโ€‹เบ•เบญเบ™โ€‹เบชเบงเบฒเบ เบ—เปˆเบฒเบ™เป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบเบฒเบงเบ™เบฒเบ™. เบ—เปˆเบฒเบ™เป€เบงเบปเป‰เบฒเบงเปˆเบฒ autovacuum เบ–เบทเบเบšเบฅเบฑเบญเบเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบฅเบถเบš. เบกเบฑเบ™เป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ•เปเปˆเบžเบงเบเป€เบฎเบปเบฒเปเบ™เบงเปƒเบ”? เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบฅเบปเบกเบเบฑเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบซเบงเปˆเบฒเบ‡เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบ‚เบฒเบ”เบซเบเบฑเบ‡เบญเบตเบ?

Autovacuum เบญเบฒเบ”เบˆเบฐเบšเปเปˆเปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เปเบฅเบฐเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบเบฒเบงเบ™เบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบฑเบญเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบญเบทเปˆเบ™เป†, เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ™เบตเป‰เปเบกเปˆเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบซเบผเบฒเบ. เบ™เบฒเบ‡เบญเบฒเบ”เบˆเบฐเบซเบผเบทเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบžเบปเบš. เบ–เป‰เบฒเบ™เบฒเบ‡เป„เบ”เป‰เบžเบปเบš, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบ”เบตเบซเบผเบฒเบ. เปเบฅเบฐเบ”เป‰เบงเบ autovacuum - เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเป€เบŠเบฑเปˆเบ™เบเบฑเบ™. เบกเบตเบชเบญเบ‡เบšเบฑเบ™เบซเบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบงเปƒเบ™ OLTP: locks เปเบฅเบฐ autovacuum. เปเบฅเบฐเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบ„เปเบฒเบ•เบดเบŠเบปเบกเบชเบฐเปเบ•เบ™เบšเบฒเบเบ—เบตเปˆเป€เบ›เบตเบ”เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบšเบฎเป‰เบญเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™ lock autovacuum เปƒเบ™เปเบกเปˆเบšเบปเบ”, เบกเบฑเบ™เบˆเบฐเบกเบฒเบฎเบญเบ”เบˆเบฒเบ replica. เปเบ•เปˆเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบˆเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เบฅเบฑเบญเบ. เปเบฅเบฐเบˆเบฐเบกเบต loks. เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบฅเบฑเบญเบเปเบกเปˆเบ™เบˆเบธเบ”เบชเปเบฒเบ„เบฑเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™, เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบซเบผเบฒเบเบ‚เบทเป‰เบ™เบ–เบทเบเบฅเบฑเบญเบ. เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบฅเบฑเบเป€เบญเบปเบฒเบ„เบปเบ™เบญเบทเปˆเบ™. เปเบฅเบฐโ€‹เบ•เบปเป‰เบ™โ€‹เป„เบกเป‰โ€‹เบฅเบปเบโ€‹เบ›เบฐเบเบปเบ”โ€‹เบ‚เบถเป‰เบ™. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš snippet เป„เบ”เป‰. เปเบฅเบฐเบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เป„เบงเบเบงเปˆเบฒเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบกเบต autovacuum, เป€เบŠเบดเปˆเบ‡เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบชเบฐเบชเบปเบกเป„เบ”เป‰.

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

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

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปเบฅเป‰เบงเป€เบฅเบทเบญเบเปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบกเบต, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เบธเบ‡เบ—เบตเปˆเบ–เบทเบเบฅเบปเบš

เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆ autovacuum เป€เบฎเบฑเบ”เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™ Postgres.

เป‚เบญเป‰, เบฅเบฒเบงเป€เบฎเบฑเบ”เบšเป?

Autovacuum เปเบกเปˆเบ™เบœเบนเป‰เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ.

!

เบ‚เบญเบšเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™! เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบญเบญเบเปเบšเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ™เบ—เบตเบ”เป‰เบงเบเบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบ›เบทเป‰เบญเบ™เบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ•เบปเป‰เบ™เบ•เปเบขเบนเปˆเบšเปˆเบญเบ™เปƒเบ”เบšเปˆเบญเบ™เบซเบ™เบถเปˆเบ‡?

เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒเบกเบต.

เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบ•เบปเบงเป€เบฎเบปเบฒเป€เบญเบ‡เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบฅเบฑเบญเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰?

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

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

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