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

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

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

เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเบฐโ€‹เบเบฝเบกโ€‹เป‚เบ”เบโ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆโ€‹เบ„เปเบฒโ€‹เบ›เบฒโ€‹เป„เบชโ€‹เบ—เบตเปˆ @DatabasesMeetup, เบˆเบฑเบ”เบ•เบฑเป‰เบ‡ Mail.ru Cloud Solutions. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบญเปˆเบฒเบ™โ€‹, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบšเบดเปˆเบ‡โ€‹:


เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบชเบฒเบกโ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹:

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

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

เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™

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

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

  • เบœเบนเป‰เปƒเบŠเป‰เบ—เบธเบฅเบฐเบเบดเบ”เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰ DBMS เบซเบ™เบถเปˆเบ‡เบšเป?
  • เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™ DBMS เปเบกเปˆเบ™เปƒเบซเป‰เบœเปˆเบฒเบ™ API เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เบซเบผเบทเบงเปˆเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ–เบทเบเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบเบปเบ‡;
  • DBMS เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เปƒเบซเป‰เบžเบฒเบเบชเปˆเบงเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปƒเบœเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบกเบฑเบ™เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™;
  • เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™ pooling/proxy เปเบฅเบฐ intermediate layers เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบฅเบฐเบœเบนเป‰เบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.

เบ•เบญเบ™เบ™เบตเป‰เป€เบฎเบปเบฒเบกเบฒเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบตเป€เบ„เบทเปˆเบญเบ‡เบกเบทเปƒเบ”เปเบ”เปˆเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบ”เป‰:

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

    เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เบˆเบฑเบ”เบญเบฑเบ™เบ”เบฑเบšเบœเบนเป‰เปƒเบŠเป‰ เบ—เบตเปˆเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบเปˆเบฝเบงเบเบฑเบš MS SQL Vulnerability Assessmen เบ—เบตเปˆเบ™เบตเป‰

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

เบ™เบตเป‰เบˆเบฐเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเปเบ™เบงเปƒเบ”เบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ DBMS?

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

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

เบ—เบปเบ”เบชเบญเบš 1 เป‚เบ”เบเบšเปเปˆเบกเบต SSL เปเบฅเบฐเปƒเบŠเป‰ SSL - เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบ—เบธโ€‹เบฅเบฐโ€‹เบเปเบฒโ€‹:

pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require 
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"

vs

pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"

เบ—เบปเบ”เบชเบญเบš 2 เป‚เบ”เบเบšเปเปˆเบกเบต SSL เปเบฅเบฐเปƒเบŠเป‰ SSL - เบ—เบธเบฅเบฐเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฝเบง:

pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"

vs

pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบญเบทเปˆเบ™เป†:

scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 5000
number of transactions actually processed: 50000/50000

เบœเบปเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš:

 
เบšเปเปˆเบกเบต SSL
SSL

เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบ—เบธเบฅเบฐเบเปเบฒ

latency เบชเบฐเป€เบฅเปˆเบ
ms 171.915
ms 187.695

tps เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡
58.168112
53.278062

tps เบšเปเปˆเบฅเบงเบกเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡
64.084546
58.725846

CPU
24%
28%

เบ—เบธเบฅเบฐเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฝเบง

latency เบชเบฐเป€เบฅเปˆเบ
ms 6.722
ms 6.342

tps เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡
1587.657278
1576.792883

tps เบšเปเปˆเบฅเบงเบกเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡
1588.380574
1577.694766

CPU
17%
21%

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

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

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

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

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

เปƒเบ™เบฅเบฐเบ”เบฑเบšเบงเบดเบชเบฒเบซเบฐเบเบดเบ”เบเบฒเบ™เบ„เป‰เบฒ DBMSs เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ”เบตเบเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบš, เปเบ•เปˆเปƒเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ” - เบšเปเปˆเบชเบฐเป€เบซเบกเบตเป„เบ›. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆ PostgreSQL เบกเบต:

  • default log - เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปƒเบ™เบ•เบปเบง;
  • extensions: pgaudit - เบ–เป‰เบฒเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบšเปเปˆเบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ—เบตเปˆเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡.

เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ•เปเปˆเบเบฑเบšเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เปƒเบ™เบงเบดเบ”เบตเป‚เบญ:

"เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบกเบต log_statement = เบ—เบฑเบ‡เบซเบกเบปเบ”.

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

เบกเบฑเบ™เบšเปเปˆเบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบกเบตเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.

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

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

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

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

DO$$
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ 'เบชเป‰เบฒเบ‡เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡' || 'ant_table(id int)';
END$$;

เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบˆเบฐเปƒเบซเป‰เบ—เปˆเบฒเบ™เบ™เบตเป‰:

LOG: เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™: เป€เบฎเบฑเบ” $$
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ 'เบชเป‰เบฒเบ‡เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡' || 'ant_table(id int)';
END$$;

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

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

เบ™เบตเป‰เปเบกเปˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆ pgAudit เบกเบตเบ›เบฐเป‚เบซเบเบ”.

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™, เบกเบฑเบ™เบˆเบฐเบœเบฐเบฅเบดเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบ—เบถเบ:

เบเบฒเบ™เบเบงเบ”เบชเบญเบš: Session,33,1,FUNCTION,DO,,,"DO $$
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ 'เบชเป‰เบฒเบ‡เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡' || 'ant_table(id int)';
END$$;"
เบเบฒเบ™เบเบงเบ”เบชเบญเบš: SESSION,33,2,DDL,CREATE Table,Table,public.important_table,CREATE TABLE important_table (id INT)

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

เป€เบกเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบ„เบงเบฒเบก SELECT เปเบฅเบฐ DML, pgAudit เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบฅเบฒเบเบเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡เปƒเบ™เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เปเบเบเบงเบดเป€เบ„เบฒเบฐเป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเปเบ•เบฐเบ•เบฒเบ•เบฒเบฅเบฒเบ‡เปƒเบ”เบ™เบถเปˆเบ‡(*) ยป.

เบ™เบตเป‰เบˆเบฐเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเปเบ™เบงเปƒเบ”เบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ DBMS?

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

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

postgresql.conf

log_destination = 'stderr'
logging_collector = เป€เบ›เบตเบ”
log_truncate_on_rotation = เป€เบ›เบตเบ”
log_rotation_age = 1d
log_rotation_size = 10MB
log_min_messages = debug5
log_min_error_statement = debug5
log_min_duration_statement = 0
debug_print_parse = เป€เบ›เบตเบ”
debug_print_rewritten = เป€เบ›เบตเบ”
debug_print_plan = เป€เบ›เบตเบ”
debug_pretty_print = เป€เบ›เบตเบ”
log_checkpoints = เบชเบธเบ”
log_connections = เป€เบ›เบตเบ”
log_disconnections = เป€เบ›เบตเบ”
log_duration = เบชเบธเบ”
log_hostname = on
log_lock_waits = เป€เบ›เบตเบ”
log_replication_commands = on
log_temp_files = 0
log_timezone = 'เป€เบญเบตเบฃเบปเบš/เบกเบญเบ”เป‚เบ'

เปƒเบ™ PostgreSQL DBMS เบ—เบตเปˆเบกเบตเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ‚เบญเบ‡ 1 CPU, 2,8 GHz, 2 GB RAM, 40 GB HDD, เบžเบงเบเป€เบฎเบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบฒเบกเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡:

$ pgbench -p 3389 -U postgres -i -s 150 benchmark
$ pgbench -p 3389 -U postgres -c 50 -j 2 -P 60 -T 600 benchmark
$ pgbench -p 3389 -U postgres -c 150 -j 2 -P 60 -T 600 benchmark

เบœเบปเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš:

เบšเปเปˆเบกเบตเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ
เบ”เป‰เบงเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบทเบ™

เป€เบงเบฅเบฒเบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เปเบปเบ”
43,74 sec
53,23 sec

RAM
24%
40%

CPU
72%
91%

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš 1 (50 เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ)

เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™ 10 เบ™เบฒเบ—เบต
74169
32445

เบ—เบธเบฅเบฐเบเบณ/เบงเบดเบ™เบฒเบ—เบต
123
54

Latency เบชเบฐเป€เบฅเปˆเบ
405 ms
925 ms

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš 2 (150 เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš 100 เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰)

เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™ 10 เบ™เบฒเบ—เบต
81727
31429

เบ—เบธเบฅเบฐเบเบณ/เบงเบดเบ™เบฒเบ—เบต
136
52

Latency เบชเบฐเป€เบฅเปˆเบ
550 ms
1432 ms

เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”

เบ‚เบฐเปœเบฒเบ” DB
2251 MB
2262 MB

เบ‚เบฐเปœเบฒเบ”เบšเบฑเบ™เบ—เบถเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™
0 MB
4587 MB

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

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบญเบทเปˆเบ™เป†:

  • เบ„เบงเบฒเบกเป„เบงเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเบฒเบ: เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ - 43,74 เบงเบดเบ™เบฒเบ—เบต, เบ”เป‰เบงเบเบšเบฑเบ™เบ—เบถเบ - 53,23 เบงเบดเบ™เบฒเบ—เบต.
  • เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ RAM เปเบฅเบฐ CPU เบˆเบฐเบ—เบปเบ™เบ—เบธเบ, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบเบฒเบ™เบเบงเบ”เบชเบญเบš. เบ™เบตเป‰เบเบฑเบ‡เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”.

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

เปƒเบ™เบšเปเบฅเบดเบชเบฑเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบซเบผเบฒเบ:

  • เบกเบตเบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบ;
  • เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบœเปˆเบฒเบ™ syslog เปƒเบ™ SIEM, เปเบ•เปˆเบเบฑเบ‡เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ: เบ–เป‰เบฒเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบเบตเบ”เบ‚เบทเป‰เบ™เบเบฑเบš syslog, เบ•เป‰เบญเบ‡เบกเบตเป„เบŸเบฅเปŒเบ—เบตเปˆเบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰;
  • shelf เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เป€เบชเบ I/O เปเบœเปˆเบ™, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบ–เบดเบ‡เบซเบผเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆ;
  • เบกเบฑเบ™เป€เบเบตเบ”เบ‚เบทเป‰เบ™เบงเปˆเบฒเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ GOST เบขเบนเปˆเบ—เบปเปˆเบงเบ—เบธเบเปเบซเปˆเบ‡, เบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบฅเบฑเบ”.

เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™

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

เบชเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹:

  1. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ (Wrapping) - เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบฅเบฐเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰. เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, เบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเบท refactored เบเบฑเบšเบ„เบทเบ™. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเปƒเบ™เบ”เป‰เบฒเบ™ DBMS - เป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบˆเปเบฒเบเบฑเบ”เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ”เบซเบผเบทเป€เบซเบ”เบœเบปเบ™เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™เบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ.
  2. เบเบฒเบ™เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปเบ–เบง (RLS) เปเบกเปˆเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบซเบฑเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบซเบ™เบถเปˆเบ‡, เปเบ•เปˆเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เปเบ–เบงเบขเบนเปˆเปƒเบ™เบ™เบฑเป‰เบ™, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เบœเบนเป‰เปƒเบ”เบœเบนเป‰เบซเบ™เบถเปˆเบ‡เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเปเบ–เบง.
  3. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบฐเปเบ”เบ‡ (Masking) เปเบกเปˆเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เบ–เบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบšเบดเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบซเบผเบทเบžเบฝเบ‡เปเบ•เปˆเบ”เบฒเบง, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบšเบฒเบ‡เบ„เบปเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ–เบทเบเบ›เบดเบ”. เป€เบ—เบเป‚เบ™เป‚เบฅเบเบตเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบœเบนเป‰เปƒเบŠเป‰เปƒเบ”เบ–เบทเบเบชเบฐเปเบ”เบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.
  4. เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡ DBA / Application DBA / DBA เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบกเปˆเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ DBMS เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เปเป‰เบกเบนเบ™เบชเบฒเบกเบฒเบ”เปเบเบเบญเบญเบเบˆเบฒเบเบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เบกเบตเป€เบ—เบเป‚เบ™เป‚เบฅเบเบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบšเปเปˆเบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”เปƒเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”, เปเบ•เปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเปƒเบ™ DBMSs เบเบฒเบ™เบ„เป‰เบฒ. เบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบตเบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบเบ„เบปเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.
  5. เบเบฒเบ™เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบŸเบฅเปŒเปƒเบ™เบฅเบฐเบ”เบฑเบšเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบซเป‰เบชเบดเบ”เปเบฅเบฐเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบเบฑเบšเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.
  6. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเบฑเบ‡เบ„เบฑเบšเปเบฅเบฐเบเบฒเบ™เบฅเป‰เบฒเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ - เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบ„เปˆเบญเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.
  7. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” end-to-end เป‚เบ”เบเบเบปเบ‡เบˆเบฒเบ DBMS เปเบกเปˆเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เป‰เบฒเบ‡เบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบ”เป‰เบฒเบ™เป€เบŠเบตเบŸเป€เบงเบต.
  8. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เปเป‰เบกเบนเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ–เบฑเบ™เปเบกเปˆเบ™เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบเบปเบ™เป„เบเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ–เบฑเบ™เบ”เบฝเบงเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.

เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเปเบ™เบงเปƒเบ”เบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ DBMS?

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

เบกเบฒเบ—เบปเบ”เบชเบญเบšเบเบฑเบš pgcrypto. เปƒเบซเป‰เบชเป‰เบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบเบฐเบ•เบด. เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เปƒเบ™เปเบ–เบงเบ—เปเบฒเบญเบดเบ”เบกเบตเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ” - เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ DBMS:

CREATE EXTENSION pgcrypto;
CREATE TABLE t1 (id integer, text1 text, text2 text);
CREATE TABLE t2 (id integer, text1 bytea, text2 bytea);
INSERT INTO t1 (id, text1, text2)
VALUES (generate_series(1,10000000), generate_series(1,10000000)::text, generate_series(1,10000000)::text);
INSERT INTO t2 (id, text1, text2) VALUES (
generate_series(1,10000000),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'));

เบ•เปเปˆเป„เบ›, เปƒเบซเป‰เบžเบฐเบเบฒเบเบฒเบกเบชเป‰เบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเปเบ•เปˆเบฅเบฐเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบฅเบฐเป€เบšเบดเปˆเบ‡เป€เบงเบฅเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เป€เบฅเบทเบญเบเบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”:

psql -c "timing" -c "select * from t1 limit 1000;" "host=192.168.220.129 dbname=taskdb
user=postgres sslmode=disable" > 1.txt

เป‚เบกเบ‡เบˆเบฑเบšเป€เบงเบฅเบฒเป€เบ›เบตเบ”เบขเบนเปˆ.

  id | text1 | เบ‚เปเป‰เบ„เบงเบฒเบก2
โ€”โ€”+โ€”โ€”-+โ€”โ€”-
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
...
997 | 997 | 997
998 | 998 | 998
999 | 999 | 999
1000 | 1000 | 1000
(1000 เป€เบชเบฑเป‰เบ™)

เป€เบงเบฅเบฒ: 1,386 ms

เบเบฒเบ™เป€เบฅเบทเบญเบเบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”:

psql -c "timing" -c "select id, decrypt(text1, 'key'::bytea, 'bf'),
decrypt(text2, 'key'::bytea, 'bf') from t2 limit 1000;"
"host=192.168.220.129 dbname=taskdb user=postgres sslmode=disable" > 2.txt

เป‚เบกเบ‡เบˆเบฑเบšเป€เบงเบฅเบฒเป€เบ›เบตเบ”เบขเบนเปˆ.

  id | เบ–เบญเบ”เบฅเบฐเบซเบฑเบ” | เบ–เบญเบ”เบฅเบฐเบซเบฑเบ”
โ€”โ€”+โ€”โ€”โ€”โ€”โ€”โ€”+โ€”โ€”โ€”โ€”
1 | x31 | x31
2 | x32 | x32
3 | x33 | x33
...
999 | x393939 | x393939
1000 | x31303030 | x31303030
(1000 เป€เบชเบฑเป‰เบ™)

เป€เบงเบฅเบฒ: 50,203 ms

เบœเบปเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš:

 
เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”
Pgcrypto (เบ–เบญเบ”เบฅเบฐเบซเบฑเบ”)

เบ•เบปเบงเบขเปˆเบฒเบ‡ 1000 เปเบ–เบง
1,386 ms
50,203 ms

CPU
15%
35%

RAM
 
+ 5%

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

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

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

เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปเบฅเบฐ DBMS: เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบˆเบทเปˆเปƒเบ™เป€เบงเบฅเบฒเป€เบฅเบทเบญเบเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž
เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™ MongoDB

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปƒเบ™เบเบฒเบ™เบ„เป‰เบฒเปเบฅเบฐเปเบซเบผเปˆเบ‡เป€เบ›เบตเบ” DBMS

เบŸเบฑเบ‡เบŠเบฑเบ™
เบ›เบฐเป€เบžเบ”
เบ™เบฐเป‚เบเบšเบฒเบเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™
เบเบฒเบ™เบเบงเบ”เบชเบญเบš
เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ
RLS
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”

Oracle
เบเบฒเบ™โ€‹เบ„เป‰เบฒ
+
+
+
+
+

MsSql
เบเบฒเบ™โ€‹เบ„เป‰เบฒ
+
+
+
+
+

เบขเบฒเบ—เบฒเป‚เบš
เบเบฒเบ™โ€‹เบ„เป‰เบฒ
+
+
+
+
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ

PostgreSQL
Free
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ
-
+
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ

MongoDb
Free
-
+
-
-
เบกเบตเบขเบนเปˆเปƒเบ™ MongoDB Enterprise เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบกเปˆเบ™เบขเบนเปˆเป„เบเบˆเบฒเบเบ„เบงเบฒเบกเบชเบปเบกเบšเบนเบ™, เปเบ•เปˆเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เปเบกเปˆเบ™เบ™เบตเป‰: เปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบเบฒเบ™เบ„เป‰เบฒ, เบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™, เปƒเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”, เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš, เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ add-ons เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž, เบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบซเบฒเบเป„เบ›. , เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ™เบฐเป‚เบเบšเบฒเบเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™ - PostgreSQL เบกเบตเบซเบผเบฒเบเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (1, 2, 3, 4, 5), เป€เบŠเบดเปˆเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบฐเป‚เบเบšเบฒเบเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™, เปเบ•เปˆ, เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบšเปเปˆเบกเบตเบžเบงเบเบกเบฑเบ™เบเบงเบกเป€เบญเบปเบฒเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบšเปเบฅเบดเบชเบฑเบ”เบžเบฒเบเปƒเบ™.

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

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

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

เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบขเบนเปˆเบ—เบตเปˆ @Databases Meetup เป‚เบ”เบ Mail.ru Cloud Solutions. เป€เบšเบดเปˆเบ‡ ะฒะธะดะตะพ เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบทเปˆเบ™เป† เปเบฅเบฐเบชเบฐเปเบฑเบเบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ”เป€เบซเบ”เบเบฒเบ™เปƒเบ™ Telegram เบ›เบฐเบกเบฒเบ™ Kubernetes เบขเบนเปˆ Mail.ru Group.

เบกเบตเบซเบเบฑเบ‡เบญเบตเบเปเบ”เปˆเบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบปเบงเบ‚เปเป‰:

  1. เบซเบผเบฒเบเบเบงเปˆเบฒ Ceph: MCS cloud block storage.
  2. เบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡.

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

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