ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB

ืœืื—ืจื•ื ื” ืกื™ืคืจืชื™ ืœื›ื ืื™ืš, ื‘ืขื–ืจืช ืžืชื›ื•ื ื™ื ืกื˜ื ื“ืจื˜ื™ื™ื ืœื”ื’ื“ื™ืœ ืืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืฉืื™ืœืชื•ืช ืงืจื™ืื” ื‘-SQL ืžืžืกื“ ื”ื ืชื•ื ื™ื PostgreSQL. ื”ื™ื•ื ื ื“ื‘ืจ ืขืœ ืื™ืš ื”ื”ืงืœื˜ื” ื™ื›ื•ืœื” ืœื”ืชื‘ืฆืข ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื™ื•ืชืจ ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ืžื‘ืœื™ ืœื”ืฉืชืžืฉ ื‘ื›ืœ "ืคื™ืชื•ืœื™ื" ื‘ืชืฆื•ืจื” - ืคืฉื•ื˜ ืขืœ ื™ื“ื™ ืืจื’ื•ืŸ ื ื›ื•ืŸ ืฉืœ ื–ืจื™ืžื•ืช ื”ื ืชื•ื ื™ื.

ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB

#1. ื—ืชืš

ืžืืžืจ ืขืœ ืื™ืš ื•ืœืžื” ื›ื“ืื™ ืœืืจื’ืŸ ื—ืœื•ืงื” ื™ื™ืฉื•ืžื™ืช "ื‘ืชื™ืื•ืจื™ื”" ื›ื‘ืจ ื”ื™ื”, ื›ืืŸ ื ื“ื‘ืจ ืขืœ ื”ืชืจื’ื•ืœ ืฉืœ ื™ื™ืฉื•ื ื›ืžื” ื’ื™ืฉื•ืช ื‘ืชื•ืš ืฉืœื ื• ืฉื™ืจื•ืช ื ื™ื˜ื•ืจ ืœืžืื•ืช ืฉืจืชื™ PostgreSQL.

"ื“ื‘ืจื™ื ืฉืœ ื™ืžื™ื ืขื‘ืจื•..."

ื‘ืชื—ื™ืœื”, ื›ืžื• ื›ืœ MVP, ื”ืคืจื•ื™ืงื˜ ืฉืœื ื• ื”ืชื—ื™ืœ ื‘ืขื•ืžืก ืงืœ ืœืžื“ื™ - ื”ื ื™ื˜ื•ืจ ื‘ื•ืฆืข ืจืง ืขื‘ื•ืจ ืชืจื™ืกืจ ืžื”ืฉืจืชื™ื ื”ืงืจื™ื˜ื™ื™ื ื‘ื™ื•ืชืจ, ื›ืœ ื”ื˜ื‘ืœืื•ืช ื”ื™ื• ืงื•ืžืคืงื˜ื™ื•ืช ื™ื—ืกื™ืช... ืื‘ืœ ื›ื›ืœ ืฉื—ืœืฃ ื”ื–ืžืŸ, ืžืกืคืจ ื”ืžืืจื—ื™ื ื”ืžื ื•ื˜ืจื™ื ื’ื“ืœ ื•ืขื•ื“, ื•ืฉื•ื‘ ื ื™ืกื™ื ื• ืœืขืฉื•ืช ืžืฉื”ื• ืขื ืื—ื“ ืžื”ื ืฉื•ืœื—ื ื•ืช ื‘ื’ื•ื“ืœ 1.5TB, ื”ื‘ื ื• ืฉืœืžืจื•ืช ืฉืืคืฉืจ ืœื”ืžืฉื™ืš ืœื—ื™ื•ืช ื›ื›ื”, ื–ื” ืžืื•ื“ ืœื ื ื•ื—.

ื”ื–ืžื ื™ื ื”ื™ื• ื›ืžืขื˜ ื›ืžื• ื–ืžื ื™ื ืืคื™ื™ื, ื’ืจืกืื•ืช ืฉื•ื ื•ืช ืฉืœ PostgreSQL 9.x ื”ื™ื• ืจืœื•ื•ื ื˜ื™ื•ืช, ื›ืš ืฉื›ืœ ื”ื—ืœื•ืงื” ื”ื™ื™ืชื” ืฆืจื™ื›ื” ืœื”ื™ืขืฉื•ืช "ื™ื“ื ื™ืช" - ื“ืจืš ืชื•ืจืฉืช ื˜ื‘ืœื” ื•ื˜ืจื™ื’ืจื™ื ื ื™ืชื•ื‘ ืขื ื“ื™ื ืžื™ืงื” EXECUTE.

ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB
ื”ืคืชืจื•ืŸ ืฉื”ืชืงื‘ืœ ื”ืชื‘ืจืจ ื›ืื•ื ื™ื‘ืจืกืœื™ ืžืกืคื™ืง ื›ื“ื™ ืฉื ื™ืชืŸ ื™ื”ื™ื” ืœืชืจื’ื ืื•ืชื• ืœื›ืœ ื”ื˜ื‘ืœืื•ืช:

  • ื”ื•ื›ืจื–ื” ื˜ื‘ืœืช ืื‘ ืจื™ืงื” ืฉืœ "ื›ื•ืชืจืช", ืฉืชื™ืืจื” ืืช ื”ื›ืœ ืื™ื ื“ืงืกื™ื ื•ื˜ืจื™ื’ืจื™ื ื ื—ื•ืฆื™ื.
  • ื”ืจื™ืฉื•ื ืžื ืงื•ื“ืช ืžื‘ื˜ื• ืฉืœ ื”ืœืงื•ื— ื ืขืฉื” ื‘ื˜ื‘ืœืช "ืฉื•ืจืฉ", ื•ื‘ืฉื™ืžื•ืฉ ืคื ื™ืžื™ ื˜ืจื™ื’ืจ ื ื™ืชื•ื‘ BEFORE INSERT ื”ืจืฉื•ืžื” ื”ื•ื›ื ืกื” "ืคื™ื–ื™ืช" ืœืกืขื™ืฃ ื”ื ื“ืจืฉ. ืื ืขื“ื™ื™ืŸ ืœื ื”ื™ื” ื“ื‘ืจ ื›ื–ื”, ืชืคืกื ื• ื—ืจื™ื’ื” ื•...
  • โ€ฆ ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘ CREATE TABLE ... (LIKE ... INCLUDING ...) ื ื•ืฆืจ ืขืœ ืกืžืš ื”ืชื‘ื ื™ืช ืฉืœ ื˜ื‘ืœืช ื”ืื‘ ืกืขื™ืฃ ืขื ื”ื’ื‘ืœื” ืขืœ ื”ืชืืจื™ืš ื”ืจืฆื•ื™ื›ืš ืฉื›ืืฉืจ ื ืชื•ื ื™ื ืžืื•ื—ื–ืจื™ื, ื”ืงืจื™ืื” ืžืชื‘ืฆืขืช ืจืง ื‘ื•.

PG10: ื ื™ืกื™ื•ืŸ ืจืืฉื•ืŸ

ืื‘ืœ ื—ืœื•ืงื” ื“ืจืš ื™ืจื•ืฉื” ืœื ื”ื™ื™ืชื” ืžืชืื™ืžื” ื‘ืื•ืคืŸ ื”ื™ืกื˜ื•ืจื™ ืœืขื‘ื•ื“ื” ืขื ื–ืจื ื›ืชื™ื‘ื” ืคืขื™ืœ ืื• ืžืกืคืจ ืจื‘ ืฉืœ ืžื—ื™ืฆื•ืช ืฆืืฆืื•ืช. ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœื”ื™ื–ื›ืจ ืฉื”ื™ื” ืœืืœื’ื•ืจื™ืชื ืœื‘ื—ื™ืจืช ื”ืงื˜ืข ื”ื ื“ืจืฉ ืžื•ืจื›ื‘ื•ืช ืจื™ื‘ื•ืขื™ืช, ืฉื–ื” ืขื•ื‘ื“ ืขื 100+ ืงื˜ืขื™ื, ืืชื” ื‘ืขืฆืžืš ืžื‘ื™ืŸ ืื™ืš...

ื‘-PG10 ื”ืžืฆื‘ ื”ื–ื” ืขื‘ืจ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืจื‘ื” ืขืœ ื™ื“ื™ ื”ื˜ืžืขืช ืชืžื™ื›ื” ื—ืœื•ืงื” ืžืงื•ืจื™ืช. ืœื›ืŸ, ื ื™ืกื™ื ื• ืžื™ื“ ืœื™ื™ืฉื ืื•ืชื• ืžื™ื“ ืœืื—ืจ ื”ืขื‘ืจืช ื”ืื—ืกื•ืŸ, ืื‘ืœ...

ื›ืคื™ ืฉื”ืชื‘ืจืจ ืœืื—ืจ ื—ืคื™ืจื” ื‘ืžื“ืจื™ืš, ื”ื˜ื‘ืœื” ื”ืžื—ื•ืœืงืช ื”ืžืงื•ืจื™ืช ื‘ื’ืจืกื” ื–ื• ื”ื™ื:

  • ืื™ื ื• ืชื•ืžืš ื‘ืชื™ืื•ืจื™ ืื™ื ื“ืงืก
  • ืœื ืชื•ืžืš ื‘ื˜ืจื™ื’ืจื™ื ืขืœื™ื•
  • ืœื ื™ื›ื•ืœ ืœื”ื™ื•ืช "ืฆืืฆื" ืฉืœ ืืฃ ืื—ื“
  • ืื™ื ื• ืชื•ืžืš INSERT ... ON CONFLICT
  • ืœื ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืงื˜ืข ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™

ืœืื—ืจ ืฉืงื™ื‘ืœื ื• ืžื›ื” ื›ื•ืื‘ืช ื‘ืžืฆื— ืขื ืžื’ืจืคื”, ื”ื‘ื ื• ืฉืื™ ืืคืฉืจ ื™ื”ื™ื” ืœืขืฉื•ืช ื–ืืช ืžื‘ืœื™ ืœืฉื ื•ืช ืืช ื”ื‘ืงืฉื”, ื•ื“ื—ื™ื ื• ืืช ื”ืžืฉืš ื”ืžื—ืงืจ ื‘ื—ืฆื™ ืฉื ื”.

PG10: ื”ื–ื“ืžื ื•ืช ืฉื ื™ื™ื”

ืื–, ื”ืชื—ืœื ื• ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื•ืช ืฉื”ืชืขื•ืจืจื• ื‘ื–ื• ืื—ืจ ื–ื•:

  1. ื›ื™ ืžืขื•ืจืจ ื• ON CONFLICT ื’ื™ืœื™ื ื• ืฉืื ื—ื ื• ืขื“ื™ื™ืŸ ืฆืจื™ื›ื™ื ืื•ืชื ืคื” ื•ืฉื, ืื– ืขืฉื™ื ื• ืฉืœื‘ ื‘ื™ื ื™ื™ื ื›ื“ื™ ืœืคืชื•ืจ ืื•ืชื ื˜ื‘ืœืช ืคืจื•ืงืกื™.
  2. ื ืคื˜ืจ ืž"ื ื™ืชื•ื‘" ื‘ื˜ืจื™ื’ืจื™ื - ื›ืœื•ืžืจ ืž EXECUTE.
  3. ื”ื ื”ื•ืฆื™ืื• ืืช ื–ื” ื‘ื ืคืจื“ ื˜ื‘ืœืช ืชื‘ื ื™ื•ืช ืขื ื›ืœ ื”ืื™ื ื“ืงืกื™ืื›ืš ืฉื”ื ืืคื™ืœื• ืœื ื ืžืฆืื™ื ื‘ื˜ื‘ืœืช ื”-proxy.

ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB
ืœื‘ืกื•ืฃ, ืื—ืจื™ ื›ืœ ื–ื”, ื—ื™ืœืงื ื• ืืช ื”ื˜ื‘ืœื” ื”ืจืืฉื™ืช ื‘ืื•ืคืŸ ื˜ื‘ืขื™. ื™ืฆื™ืจืช ืžื“ื•ืจ ื—ื“ืฉ ืขื“ื™ื™ืŸ ื ื•ืชืจื” ืœืžืฆืคื•ืŸ ื”ืืคืœื™ืงืฆื™ื”.

ืžื™ืœื•ื ื™ "ื ื™ืกื•ืจ".

ื›ืžื• ื‘ื›ืœ ืžืขืจื›ืช ืื ืœื™ื˜ื™ืช, ื’ื ืœื ื• ื”ื™ื” "ืขื•ื‘ื“ื•ืช" ื•"ืงื™ืฆื•ืฆื™ื" (ืžื™ืœื•ื ื™ื). ื‘ืขื ื™ื™ื ื ื•, ื‘ืชืคืงื™ื“ ื–ื” ืคืขืœื•, ืœืžืฉืœ, ื’ื•ืฃ ื”ืชื‘ื ื™ืช ืฉืื™ืœืชื•ืช ืื™ื˜ื™ื•ืช ื“ื•ืžื•ืช ืื• ื”ื˜ืงืกื˜ ืฉืœ ื”ืฉืื™ืœืชื” ืขืฆืžื”.

"ืขื•ื‘ื“ื•ืช" ื”ื™ื• ืžื“ื•ืจื’ื•ืช ืœืคื™ ื™ื•ื ื›ื‘ืจ ื”ืจื‘ื” ื–ืžืŸ, ืื– ืžื—ืงื ื• ื‘ืฉืœื•ื•ื” ืงื˜ืขื™ื ืžื™ื•ืฉื ื™ื, ื•ื”ื ืœื ื”ืคืจื™ืขื• ืœื ื• (ื™ื•ืžื ื™ื!). ืื‘ืœ ื”ื™ื™ืชื” ื‘ืขื™ื” ืขื ืžื™ืœื•ื ื™ื...

ืœื ืื•ืžืจ ืฉื”ื™ื• ื”ืจื‘ื” ื›ืืœื”, ืื‘ืœ ื‘ืขืจืš 100TB ืฉืœ "ืขื•ื‘ื“ื•ืช" ื”ื‘ื™ืื• ืœืžื™ืœื•ืŸ ืฉืœ 2.5TB. ืืชื” ืœื ื™ื›ื•ืœ ืœืžื—ื•ืง ื‘ื ื•ื—ื•ืช ืฉื•ื ื“ื‘ืจ ืžื˜ื‘ืœื” ื›ื–ื•, ืืชื” ืœื ื™ื›ื•ืœ ืœื“ื—ื•ืก ืื•ืชื• ื‘ื–ืžืŸ ื”ื•ืœื, ื•ื”ื›ืชื™ื‘ื” ืืœื™ื• ื ืขืฉืชื” ืื™ื˜ื™ืช ื™ื•ืชืจ ื‘ื”ื“ืจื’ื”.

ื›ืžื• ืžื™ืœื•ืŸ... ื‘ื•, ื›ืœ ืขืจืš ืฆืจื™ืš ืœื”ื™ื•ืช ืžื•ืฆื’ ืคืขื ืื—ืช ื‘ื“ื™ื•ืง... ื•ื–ื” ื ื›ื•ืŸ, ืื‘ืœ!.. ืืฃ ืื—ื“ ืœื ืžื•ื ืข ืžืื™ืชื ื• ืœืงื‘ืœ ืžื™ืœื•ืŸ ื ืคืจื“ ืœื›ืœ ื™ื•ื! ื›ืŸ, ื–ื” ืžื‘ื™ื ื™ืชื™ืจื•ืช ืžืกื•ื™ืžืช, ืื‘ืœ ื–ื” ืžืืคืฉืจ:

  • ืœื›ืชื•ื‘/ืœืงืจื•ื ืžื”ืจ ื™ื•ืชืจ ื‘ืฉืœ ื’ื•ื“ืœ ืžืงื˜ืข ืงื˜ืŸ ื™ื•ืชืจ
  • ืฆื•ืจื›ื™ื ืคื—ื•ืช ื–ื™ื›ืจื•ืŸ ืขืœ ื™ื“ื™ ืขื‘ื•ื“ื” ืขื ืื™ื ื“ืงืกื™ื ืงื•ืžืคืงื˜ื™ื™ื ื™ื•ืชืจ
  • ืœืื—ืกืŸ ืคื—ื•ืช ื ืชื•ื ื™ื ื‘ืฉืœ ื”ื™ื›ื•ืœืช ืœื”ืกื™ืจ ื‘ืžื”ื™ืจื•ืช ืžื™ื•ืฉืŸ

ื›ืชื•ืฆืื” ืžื›ืœ ืžื›ืœื•ืœ ื”ืืžืฆืขื™ื ืขื•ืžืก ื”ืžืขื‘ื“ ื™ืจื“ ื‘ื›-30%, ืขื•ืžืก ื”ื“ื™ืกืง ื‘ื›-50%:

ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB
ื‘ืžืงื‘ื™ืœ, ื”ืžืฉื›ื ื• ืœื›ืชื•ื‘ ื‘ื“ื™ื•ืง ืืช ืื•ืชื• ื”ื“ื‘ืจ ืœืชื•ืš ื‘ืกื™ืก ื”ื ืชื•ื ื™ื, ืจืง ืขื ืคื—ื•ืช ืขื•ืžืก.

#2. ืื‘ื•ืœื•ืฆื™ื” ืฉืœ ืžืกื“ื™ ื ืชื•ื ื™ื ื•ืฉื—ื–ื•ืจ

ืื– ื”ืกืชืคืงื ื• ื‘ืžื” ืฉื™ืฉ ืœื ื• ืœื›ืœ ื™ื•ื ื™ืฉ ืงื˜ืข ืžืฉืœื• ืขื ื ืชื•ื ื™ื. ื‘ืขืฆื, CHECK (dt = '2018-10-12'::date) - ื•ื™ืฉ ืžืคืชื— ื—ืœื•ืงื” ื•ืชื ืื™ ืฉืจืฉื•ืžื” ืชื™ืคื•ืœ ืœืงื˜ืข ืžืกื•ื™ื.

ืžื›ื™ื•ื•ืŸ ืฉื›ืœ ื”ื“ื•ื—ื•ืช ื‘ืฉื™ืจื•ืช ืฉืœื ื• ื‘ื ื•ื™ื™ื ื‘ื”ืงืฉืจ ืฉืœ ืชืืจื™ืš ืžืกื•ื™ื, ื”ืื™ื ื“ืงืกื™ื ืขื‘ื•ืจื ืžืื– "ื–ืžื ื™ื ืœื ืžื—ื•ืœืงื™ื" ื”ื™ื• ืžื›ืœ ื”ืกื•ื’ื™ื (ืฉืจืช, ืชืืจื™ืš, ืชื‘ื ื™ืช ืชื•ื›ื ื™ืช), (ืฉืจืช, ืชืืจื™ืš, ืฆื•ืžืช ืชื›ื ื•ืŸ), (ืชืืจื™ืš, ืžื—ืœืงืช ืฉื’ื™ืื”, ืฉืจืช), ...

ืื‘ืœ ืขื›ืฉื™ื• ื”ื ื—ื™ื™ื ืขืœ ื›ืœ ืงื˜ืข ื”ืขื•ืชืงื™ื ืฉืœืš ื›ืœ ืื™ื ื“ืงืก ื›ื–ื”... ื•ื‘ืชื•ืš ื›ืœ ืกืขื™ืฃ ืชืืจื™ืš ื”ื•ื ืงื‘ื•ืข... ืžืกืชื‘ืจ ืฉืขื›ืฉื™ื• ืื ื—ื ื• ื‘ื›ืœ ืžื“ื“ ื›ื–ื” ืคืฉื•ื˜ ื”ื–ืŸ ืงื‘ื•ืข ื›ืื—ื“ ื”ืฉื“ื•ืช, ืžื” ืฉืžื’ื“ื™ืœ ื’ื ืืช ื”ื ืคื— ืฉืœื• ื•ื’ื ืืช ื–ืžืŸ ื”ื—ื™ืคื•ืฉ ืื—ืจื™ื•, ืื‘ืœ ืœื ืžื‘ื™ื ืฉื•ื ืชื•ืฆืื”. ื”ื ื”ืฉืื™ืจื• ืืช ื”ืžื’ืจืคื” ืœืขืฆืžื, ืื•ืคืก...

ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB
ื›ื™ื•ื•ืŸ ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื‘ืจื•ืจ - ืคืฉื•ื˜ ื”ืกืจ ืืช ืฉื“ื” ื”ืชืืจื™ืš ืžื›ืœ ื”ืื™ื ื“ืงืกื™ื ืขืœ ืฉื•ืœื—ื ื•ืช ืžื—ื•ืœืงื™ื. ื‘ื”ืชื—ืฉื‘ ื‘ื”ื™ืงืคื™ื ืฉืœื ื•, ื”ืจื•ื•ื— ื”ื•ื ื‘ืขืจืš 1TB/ืฉื‘ื•ืข!

ืขื›ืฉื™ื• ื‘ื•ืื• ื ืฆื™ื™ืŸ ืฉื”ื˜ืจื”-ื‘ื™ื™ื˜ ื”ื–ื” ืขื“ื™ื™ืŸ ื”ื™ื” ืฆืจื™ืš ืœื”ื™ื•ืช ืžื•ืงืœื˜ ืื™ื›ืฉื”ื•. ื›ืœื•ืžืจ, ื’ื ืื ื—ื ื• ื”ื“ื™ืกืง ืืžื•ืจ ื›ืขืช ืœื˜ืขื•ืŸ ืคื—ื•ืช! ืชืžื•ื ื” ื–ื• ืžืฆื™ื’ื” ื‘ื‘ื™ืจื•ืจ ืืช ื”ืืคืงื˜ ื”ืžืชืงื‘ืœ ืžื”ื ื™ืงื•ื™, ืœื• ื”ืงื“ืฉื ื• ืฉื‘ื•ืข:

ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB

#3. "ืคื™ื–ื•ืจ" ืขื•ืžืก ื”ืฉื™ื

ืื—ืช ื”ืฆืจื•ืช ื”ื’ื“ื•ืœื•ืช ืฉืœ ืžืขืจื›ื•ืช ืขืžื•ืกื•ืช ื”ื™ื ืกื ื›ืจื•ืŸ ืžื™ื•ืชืจ ื›ืžื” ืคืขื•ืœื•ืช ืฉืื™ื ืŸ ื“ื•ืจืฉื•ืช ื–ืืช. ืœืคืขืžื™ื "ื›ื™ ื”ื ืœื ืฉืžื• ืœื‘", ืœืคืขืžื™ื "ื”ื™ื” ืงืœ ื™ื•ืชืจ ื›ื›ื”", ืื‘ืœ ื‘ืžื•ืงื“ื ืื• ื‘ืžืื•ื—ืจ ืฆืจื™ืš ืœื”ื™ืคื˜ืจ ืžื–ื”.

ื‘ื•ืื• ื ืชืงืจื‘ ืœืชืžื•ื ื” ื”ืงื•ื“ืžืช ื•ื ืจืื” ืฉื™ืฉ ืœื ื• ื“ื™ืกืง "ืฉื•ืื‘" ืžืชื—ืช ืœืขื•ืžืก ืขื ืžืฉืจืขืช ื›ืคื•ืœื” ื‘ื™ืŸ ื“ื’ื™ืžื•ืช ืกืžื•ื›ื•ืช, ืžื” ืฉื‘ืจื•ืจ "ืกื˜ื˜ื™ืกื˜ื™ืช" ืœื ืืžื•ืจ ืœืงืจื•ืช ืขื ืžืกืคืจ ื›ื–ื” ืฉืœ ืคืขื•ืœื•ืช:

ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB

ื–ื” ื“ื™ ืงืœ ืœื”ืฉื’ื”. ื›ื‘ืจ ื”ืชื—ืœื ื• ื‘ืžืขืงื‘ ื›ืžืขื˜ 1000 ืฉืจืชื™ื, ื›ืœ ืฉืจืฉื•ืจ ืžืขื•ื‘ื“ ืขืœ ื™ื“ื™ ืฉืจืฉื•ืจ ืœื•ื’ื™ ื ืคืจื“, ื•ื›ืœ ืฉืจืฉื•ืจ ืžืืคืก ืืช ื”ืžื™ื“ืข ื”ืžืฆื˜ื‘ืจ ืฉื™ื™ืฉืœื— ืœืžืกื“ ื”ื ืชื•ื ื™ื ื‘ืชื“ื™ืจื•ืช ืžืกื•ื™ืžืช, ืžืฉื”ื• ื›ืžื• ื–ื”:

setInterval(sendToDB, interval)

ื”ื‘ืขื™ื” ื›ืืŸ ื ืขื•ืฆื” ื“ื•ื•ืงื ื‘ืขื•ื‘ื“ื” ืฉ ื›ืœ ื”ืฉืจืฉื•ืจื™ื ืžืชื—ื™ืœื™ื ื‘ืขืจืš ื‘ืื•ืชื• ื–ืžืŸ, ืื– ื–ืžื ื™ ื”ืฉืœื™ื—ื” ืฉืœื”ื ื›ืžืขื˜ ืชืžื™ื“ ืชื•ืืžื™ื "ืœืขื ื™ื™ืŸ". ืื•ืคืก ืžืกืคืจ 2...

ืœืžืจื‘ื” ื”ืžื–ืœ, ื–ื” ื“ื™ ืงืœ ืœืชืงืŸ, ื”ื•ืกืคืช ืจื™ืฆื” "ืืงืจืื™ืช". ื‘ื–ืžืŸ:

setInterval(sendToDB, interval * (1 + 0.1 * (Math.random() - 0.5)))

#4. ืื ื—ื ื• ืžืื—ืกื ื™ื ืืช ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื

ื‘ืขื™ื™ืช ื”ืขื•ืžืก ื”ื’ื‘ื•ื” ื”ืฉืœื™ืฉื™ืช ื”ื™ื ืื™ืŸ ืžื˜ืžื•ืŸ ืื™ืคื” ื”ื•ื ื™ื›ื•ืœ ืœื”ื™ื•ืช.

ืœื“ื•ื’ืžื”, ืืคืฉืจื ื• ืœื ืชื— ื‘ืžื•ื ื—ื™ื ืฉืœ ืฆืžืชื™ ืชื•ื›ื ื™ืช (ื›ืœ ืืœื” Seq Scan on users), ืื‘ืœ ืžื™ื“ ื—ื•ืฉื‘ื™ื ืฉื”ื, ืœืจื•ื‘, ืื•ืชื• ื“ื‘ืจ - ื”ื ืฉื›ื—ื•.

ืœื, ื›ืžื•ื‘ืŸ, ืฉื•ื ื“ื‘ืจ ืœื ื ื›ืชื‘ ืฉื•ื‘ ืœืžืกื“ ื”ื ืชื•ื ื™ื, ื–ื” ืžื ืชืง ืืช ื”ื”ื“ืง ืขื INSERT ... ON CONFLICT DO NOTHING. ืื‘ืœ ื”ื ืชื•ื ื™ื ื”ืืœื” ืขื“ื™ื™ืŸ ืžื’ื™ืขื™ื ืœืžืกื“ ื”ื ืชื•ื ื™ื, ื•ื–ื” ืžื™ื•ืชืจ ืงืจื™ืื” ื›ื“ื™ ืœื‘ื“ื•ืง ืื ื™ืฉ ืงื•ื ืคืœื™ืงื˜ ื—ื™ื™ื‘ ืœืขืฉื•ืช. ืื•ืคืก ืžืกืคืจ 3...

ื”ื”ื‘ื“ืœ ื‘ืžืกืคืจ ื”ืจืฉื•ืžื•ืช ืฉื ืฉืœื—ื•ืช ืœืžืกื“ ื”ื ืชื•ื ื™ื ืœืคื ื™/ืื—ืจื™ ื”ืคืขืœืช ื”ืžื˜ืžื•ืŸ ื‘ืจื•ืจ:

ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB

ื•ื–ื• ื”ื™ืจื™ื“ื” ื”ื ืœื•ื•ื™ืช ื‘ืขื•ืžืก ื”ืื—ืกื•ืŸ:

ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB

ื‘ืกืš ื”ื›ืœ

"ื˜ืจื”-ื‘ื™ื™ื˜ ืœื™ื•ื" ืคืฉื•ื˜ ื ืฉืžืข ืžืคื—ื™ื“. ืื ืืชื” ืขื•ืฉื” ื”ื›ืœ ื ื›ื•ืŸ, ืื– ื–ื” ืคืฉื•ื˜ 2^40 ื‘ืชื™ื / 86400 ืฉื ื™ื•ืช = ~12.5MB/sืฉืืคื™ืœื• ื‘ืจื’ื™ IDE ืฉื•ืœื—ื ื™ื™ื ื”ื—ื–ื™ืงื•. ๐Ÿ™‚

ืื‘ืœ ื‘ืจืฆื™ื ื•ืช, ืืคื™ืœื• ืขื ืคื™ ืขืฉืจื” ืฉืœ ื”ืขื•ืžืก ื‘ืžื”ืœืš ื”ื™ื•ื, ืืชื” ื™ื›ื•ืœ ื‘ืงืœื•ืช ืœืขืžื•ื“ ื‘ื™ื›ื•ืœื•ืช ืฉืœ ื›ื•ื ื ื™ SSD ืžื•ื“ืจื ื™ื™ื.

ื›ืชื™ื‘ื” ื‘-PostgreSQL ื‘-sublight: ืžืืจื— ืื—ื“, ื™ื•ื ืื—ื“, 1TB

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”