рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB

рдЕрд▓реАрдХрдбреЗ рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧрд┐рддрд▓реЗ рдХреА рдХрд╕реЗ, рдорд╛рдирдХ рдкрд╛рдХрдХреГрддреА рд╡рд╛рдкрд░реВрди SQL рд░реАрдб рдХреНрд╡реЗрд░реАрдЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╡рд╛рдврд╡рд╛ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕рдордзреВрди. рдЖрдЬ рдЖрдкрдг рдХрд╕реЗ рдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓реВ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдХреЛрдгрддреЗрд╣реА "рдЯреНрд╡рд┐рд╕реНрдЯ" рди рд╡рд╛рдкрд░рддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ - рдлрдХреНрдд рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдЖрдпреЛрдЬрд┐рдд рдХрд░реВрди.

рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB

#1. рд╕реЗрдХреНрд╢рдирд┐рдВрдЧ

рддреЗ рдХрд╕реЗ рдЖрдгрд┐ рдХрд╛ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ рдпрд╛рдмрджреНрджрд▓ рдПрдХ рд▓реЗрдЦ "рд╕рд┐рджреНрдзрд╛рдВрддрд╛рдиреБрд╕рд╛рд░" рд╡рд┐рднрд╛рдЬрди рд▓рд╛рдЧреВ рдЖрдзреАрдЪ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдпреЗрдереЗ рдЖрдкрдг рдЖрдкрд▓реНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдХрд╛рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрди рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░рд╛рд╡рд╛рдмрджреНрджрд▓ рдмреЛрд▓реВ рд╢реЗрдХрдбреЛ PostgreSQL рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА рджреЗрдЦрд░реЗрдЦ рд╕реЗрд╡рд╛.

"рдЧреЗрд▓реНрдпрд╛ рджрд┐рд╡рд╕рд╛рдВрдЪреНрдпрд╛ рдЧреЛрд╖реНрдЯреА..."

рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, рдХреЛрдгрддреНрдпрд╛рд╣реА MVP рдкреНрд░рдорд╛рдгреЗ, рдЖрдордЪрд╛ рдкреНрд░рдХрд▓реНрдк рдЕрдЧрджреА рд╣рд▓рдХреНрдпрд╛ рднрд╛рд░рд╛рдЦрд╛рд▓реА рд╕реБрд░реВ рдЭрд╛рд▓рд╛ - рджреЗрдЦрд░реЗрдЦ рдлрдХреНрдд рдбрдЭрдирднрд░ рд╕рд░реНрд╡рд╛рдд рдЧрдВрднреАрд░ рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА рдХреЗрд▓реА рдЧреЗрд▓реА рд╣реЛрддреА, рд╕рд░реНрд╡ рд╕рд╛рд░рдгреНрдпрд╛ рддреБрд▓рдиреЗрдиреЗ рдХреЙрдореНрдкреЕрдХреНрдЯ рд╣реЛрддреНрдпрд╛... рдкрд░рдВрддреБ рдЬрд╕рдЬрд╕рд╛ рд╡реЗрд│ рдкреБрдвреЗ рдЧреЗрд▓рд╛ рддрд╕рддрд╕реЗ рдирд┐рд░реАрдХреНрд╖рдг рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╣реЛрд╕реНрдЯрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЕрдзрд┐рдХ рд╣реЛрдд рдЧреЗрд▓реА. рдЖрдгрд┐ рдЕрдзрд┐рдХ, рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рдПрдХрджрд╛ рдЖрдореНрд╣реА рддреНрдпрд╛рдкреИрдХреА рдПрдХрд╛рд╕рд╣ рдХрд╛рд╣реАрддрд░реА рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ рдЯреЗрдмрд▓ 1.5TB рдЖрдХрд╛рд░рд╛рдд, рдЖрдордЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реЗ рдХреА рдЕрд╕реЗ рдЬрдЧрдгреЗ рд╢рдХреНрдп рдЕрд╕рд▓реЗ рддрд░реА рддреЗ рдЦреВрдк рдЧреИрд░рд╕реЛрдпреАрдЪреЗ рд╣реЛрддреЗ.

рдХрд╛рд│ рдЬрд╡рд│рдЬрд╡рд│ рдорд╣рд╛рдХрд╛рд╡реНрдпрд╛рдВрдкреНрд░рдорд╛рдгреЗрдЪ рд╣реЛрддрд╛, PostgreSQL 9.x рдЪреНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддреНрдпрд╛, рддреНрдпрд╛рдореБрд│реЗ рд╕рд░реНрд╡ рд╡рд┐рднрд╛рдЬрдиреЗ тАЬрдореЕрдиреНрдпреБрдЕрд▓реАтАЭ рдХрд░рд╛рд╡реА рд▓рд╛рдЧрд▓реА - рд╕рд╛рд░рдгреА рд╡рд╛рд░рд╕рд╛ рдЖрдгрд┐ рдЯреНрд░рд┐рдЧрд░ рдбрд╛рдпрдиреЕрдорд┐рдХ рд╕рд╣ рд░реВрдЯрд┐рдВрдЧ EXECUTE.

рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB
рдкрд░рд┐рдгрд╛рдореА рд╕рдорд╛рдзрд╛рди рдЗрддрдХреЗ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдард░рд▓реЗ рдХреА рддреЗ рд╕рд░реНрд╡ рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреНрдпреЗ рднрд╛рд╖рд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ:

  • рд░рд┐рдХреНрдд тАЬрд╢реАрд░реНрд╖рд▓реЗрдЦтАЭ рдкрд╛рд▓рдХ рд╕рд╛рд░рдгреА рдШреЛрд╖рд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА, рдЬреНрдпрд╛рдиреЗ рд╕рд░реНрд╡ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЖрдгрд┐ рдЯреНрд░рд┐рдЧрд░.
  • рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди рд░реЗрдХреЙрд░реНрдб "рд░реВрдЯ" рдЯреЗрдмрд▓рдордзреНрдпреЗ рдЖрдгрд┐ рдЕрдВрддрд░реНрдЧрдд рд╡рд╛рдкрд░реВрди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд░реВрдЯрд┐рдВрдЧ рдЯреНрд░рд┐рдЧрд░ BEFORE INSERT рд░реЗрдХреЙрд░реНрдб рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рднрд╛рдЧрд╛рдд "рд╢рд╛рд░реАрд░рд┐рдХрд░рд┐рддреНрдпрд╛" рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ. рдЕрджреНрдпрд╛рдк рдЕрд╕реЗ рдХрд╛рд╣реАрд╣реА рдирд╕рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА рдПрдХ рдЕрдкрд╡рд╛рдж рдкрдХрдбрд▓рд╛ рдЖрдгрд┐...
  • тАж рд╡рд╛рдкрд░реВрди CREATE TABLE ... (LIKE ... INCLUDING ...) рдкреЕрд░реЗрдВрдЯ рдЯреЗрдмрд▓рдЪреНрдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рддрдпрд╛рд░ рдХреЗрд▓реЗ рд╣реЛрддреЗ рдЗрдЪреНрдЫрд┐рдд рддрд╛рд░рдЦреЗрдЪреНрдпрд╛ рдирд┐рд░реНрдмрдВрдзрд╛рд╕рд╣ рд╡рд┐рднрд╛рдЧрдЬреЗрдгреЗрдХрд░реБрди рдЬреЗрд╡реНрд╣рд╛ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рддреЗрд╡реНрд╣рд╛ рд╡рд╛рдЪрди рдлрдХреНрдд рддреНрдпрд╛рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

PG10: рдкрд╣рд┐рд▓рд╛ рдкреНрд░рдпрддреНрди

рдкрд░рдВрддреБ рд╡рд╛рд░рд╕рд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рднрд╛рдЬрди рдХрд░рдгреЗ рдРрддрд┐рд╣рд╛рд╕рд┐рдХрджреГрд╖реНрдЯреНрдпрд╛ рд╕рдХреНрд░рд┐рдп рд▓реЗрдЦрди рдкреНрд░рд╡рд╛рд╣ рдХрд┐рдВрд╡рд╛ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рд╡рдВрд╢рдЬ рд╡рд┐рднрд╛рдЬрдирд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдлрд╛рд░рд╕реЗ рдЕрдиреБрдХреВрд▓ рдирд╛рд╣реА. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрдард╡рдд рдЕрд╕реЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рднрд╛рдЧ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реЛрддрд╛ рдЪрддреБрд░реНрднреБрдЬ рдЬрдЯрд┐рд▓рддрд╛, рддреЗ 100+ рд╡рд┐рднрд╛рдЧрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддреЗ, рддреБрдореНрд╣реА рд╕реНрд╡рддрдГрдЪ рд╕рдордЬрддрд╛ рдХрд╕реЗ...

PG10 рдордзреНрдпреЗ рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреА рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд░реВрди рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдЕрдиреБрдХреВрд▓ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдореВрд│ рд╡рд┐рднрд╛рдЬрди. рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рд╕реНрдЯреЛрд░реЗрдЬ рд╕реНрдерд▓рд╛рдВрддрд░рд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рд▓рдЧреЗрдЪ рддреЗ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛, рдкрд░рдВрддреБ...

рдореЕрдиреНрдпреБрдЕрд▓рдордзреВрди рдЦреЛрджрд▓реНрдпрд╛рдирдВрддрд░ рд╣реЗ рдирд┐рд╖реНрдкрдиреНрди рдЭрд╛рд▓реЗ рдХреА, рдпрд╛ рдЖрд╡реГрддреНрддреАрддреАрд▓ рдореВрд│ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕рд╛рд░рдгреА рдЖрд╣реЗ:

  • рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╡рд░реНрдгрдирд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА
  • рддреНрдпрд╛рд╡рд░ рдЯреНрд░рд┐рдЧрд░рдирд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА
  • рдХреЛрдгрд╛рдЪрд╛ "рд╡рдВрд╢рдЬ" рд╣реЛрдК рд╢рдХрдд рдирд╛рд╣реА
  • рд╕рдорд░реНрдерди рдХрд░реВ рдирдХрд╛ INSERT ... ON CONFLICT
  • рд╡рд┐рднрд╛рдЧ рдЖрдкреЛрдЖрдк рдирд┐рд░реНрдорд╛рдг рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА

рджрдВрддрд╛рд│реЗрдиреЗ рдХрдкрд╛рд│рд╛рд╡рд░ рд╡реЗрджрдирд╛рджрд╛рдпрдХ рдЖрдШрд╛рдд рдХреЗрд▓реНрдпрд╛рд╡рд░, рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдордЬрд▓реЗ рдХреА рдЕрд░реНрдЬрд╛рдд рдмрджрд▓ рдХреЗрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣реЗ рдХрд░рдгреЗ рдЕрд╢рдХреНрдп рдЖрд╣реЗ рдЖрдгрд┐ рдкреБрдвреАрд▓ рд╕рдВрд╢реЛрдзрди рд╕рд╣рд╛ рдорд╣рд┐рдиреНрдпрд╛рдВрд╕рд╛рдареА рдкреБрдвреЗ рдврдХрд▓рд▓реЗ.

PG10: рджреБрд╕рд░реА рд╕рдВрдзреА

рддрд░, рдЖрдореНрд╣реА рдПрдХ-рдПрдХ рдХрд░реВрди рдЙрджреНрднрд╡рд▓реЗрд▓реНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░рд╡рд╛рдд рдХреЗрд▓реА:

  1. рдХрд╛рд░рдг рдЯреНрд░рд┐рдЧрд░ рдЖрдгрд┐ ON CONFLICT рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдврд│рд▓реЗ рдХреА рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдЬреВрдирд╣реА рддреНрдпрд╛рдВрдЪреА рдЗрдХрдбреЗ-рддрд┐рдХрдбреЗ рдЧрд░рдЬ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдЪреЗ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдЯрдкреНрдкрд╛ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдкреНрд░реЙрдХреНрд╕реА рдЯреЗрдмрд▓.
  2. "рд░рд╛рдЙрдЯрд┐рдВрдЧ" рдкрд╛рд╕реВрди рд╕реБрдЯрдХрд╛ рдЭрд╛рд▓реА рдЯреНрд░рд┐рдЧрд░реНрд╕рдордзреНрдпреЗ - рдореНрд╣рдгрдЬреЗ, рдкрд╛рд╕реВрди EXECUTE.
  3. рддреНрдпрд╛рдВрдиреА рддреЗ рд╡реЗрдЧрд│реЗ рдХрд╛рдврд▓реЗ рд╕рд░реНрд╡ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрд╕рд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рд╛рд░рдгреАрдЬреЗрдгреЗрдХрд░реВрди рддреЗ рдкреНрд░реЙрдХреНрд╕реА рдЯреЗрдмрд▓рдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдЙрдкрд╕реНрдерд┐рдд рдирд╕рддреАрд▓.

рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB
рд╢реЗрд╡рдЯреА, рдпрд╛ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреАрдВрдирдВрддрд░, рдЖрдореНрд╣реА рдореВрд│ рдЯреЗрдмрд▓рдЪреЗ рд╡рд┐рднрд╛рдЬрди рдХреЗрд▓реЗ. рдирд╡реАрди рд╡рд┐рднрд╛рдЧ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЕрджреНрдпрд╛рдк рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рд╡рд┐рд╡реЗрдХрд╛рд╡рд░ рдмрд╛рдХреА рдЖрд╣реЗ.

"рд╕реЙрдЗрдВрдЧ" рд╢рдмреНрджрдХреЛрд╖

рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдкреНрд░рдгрд╛рд▓реАрдкреНрд░рдорд╛рдгреЗ, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рджреЗрдЦреАрд▓ рд╣реЛрддреЗ "рддрдереНрдп" рдЖрдгрд┐ "рдХрдЯ" (рд╢рдмреНрджрдХреЛрд╢). рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдпрд╛ рдХреНрд╖рдорддреЗрдордзреНрдпреЗ рддреНрдпрд╛рдВрдиреА рдХрд╛рд░реНрдп рдХреЗрд▓реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореБрдЦреНрдп рднрд╛рдЧ рддрддреНрд╕рдо рд╕рдВрде рдХреНрд╡реЗрд░реА рдХрд┐рдВрд╡рд╛ рдХреНрд╡реЗрд░реАрдЪрд╛рдЪ рдордЬрдХреВрд░.

"рддрдереНрдпреЗ" рд╣реЗ рдмрд░реНрдпрд╛рдЪ рдХрд╛рд│рд╛рдкрд╛рд╕реВрди рджрд┐рд╡рд╕рд╛рдЧрдгрд┐рдХ рд╡рд┐рднрд╛рдЧрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╢рд╛рдВрддрдкрдгреЗ рдХрд╛рд▓рдмрд╛рд╣реНрдп рд╡рд┐рднрд╛рдЧ рд╣рдЯрд╡рд▓реЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдиреА рдЖрдореНрд╣рд╛рд▓рд╛ рддреНрд░рд╛рд╕ рджрд┐рд▓рд╛ рдирд╛рд╣реА (рд▓реЙрдЧ!). рдкрдг рд╢рдмреНрджрдХреЛрд╖рд╛рдВрдордзреНрдпреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА...

рдЕрд╕реЗ рдореНрд╣рдгрд╛рдпрдЪреЗ рдирд╛рд╣реА рдХреА рддреНрдпрд╛рдкреИрдХреА рдмрд░реЗрдЪ рд╣реЛрддреЗ, рдкрд░рдВрддреБ рдЕрдВрджрд╛рдЬреЗ 100TB тАЬрддрдереНрдпреЗтАЭ рдореБрд│реЗ 2.5TB рд╢рдмреНрджрдХреЛрд╢ рдмрдирд▓рд╛. рддреБрдореНрд╣реА рдЕрд╢рд╛ рд╕рд╛рд░рдгреАрддреВрди рдХрд╛рд╣реАрд╣реА рд╕реЛрдпреАрд╕реНрдХрд░рдкрдгреЗ рд╣рдЯрд╡реВ рд╢рдХрдд рдирд╛рд╣реА, рддреБрдореНрд╣реА рддреЗ рдкреБрд░реЗрд╢рд╛ рд╡реЗрд│реЗрдд рд╕рдВрдХреБрдЪрд┐рдд рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рд▓рд┐рд╣рд┐рдгреЗ рд╣рд│реВрд╣рд│реВ рд╣рд│реВ рд╣реЛрдд рдЧреЗрд▓реЗ.

рдПрдЦрд╛рджреНрдпрд╛ рд╢рдмреНрджрдХреЛрд╢рд╛рдкреНрд░рдорд╛рдгреЗ... рддреНрдпрд╛рдд, рдкреНрд░рддреНрдпреЗрдХ рдПрдВрдЯреНрд░реА рдПрдХрджрд╛рдЪ рд╕рд╛рджрд░ рдХреЗрд▓реА рдкрд╛рд╣рд┐рдЬреЗ... рдЖрдгрд┐ рд╣реЗ рдмрд░реЛрдмрд░ рдЖрд╣реЗ, рдкрдг!.. рдЖрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгреАрд╣реА рд░реЛрдЦрдд рдирд╛рд╣реА. рдкреНрд░рддреНрдпреЗрдХ рджрд┐рд╡рд╕рд╛рд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рд╢рдмреНрджрдХреЛрд╢! рд╣реЛрдп, рд╣реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд┐рдбрдВрдбрдВрд╕реА рдЖрдгрддреЗ, рдкрд░рдВрддреБ рддреЗ рдЕрдиреБрдорддреА рджреЗрддреЗ:

  • рдЬрд▓рдж рд▓рд┐рд╣рд╛/рд╡рд╛рдЪрд╛ рд▓рд╣рд╛рди рд╡рд┐рднрд╛рдЧ рдЖрдХрд╛рд░рд╛рдореБрд│реЗ
  • рдХрдореА рдореЗрдорд░реА рд╡рд╛рдкрд░рд╛ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВрди
  • рдХрдореА рдбреЗрдЯрд╛ рд╕рд╛рдард╡рд╛ рдХрд╛рд▓рдмрд╛рд╣реНрдп рджреНрд░реБрддрдкрдгреЗ рдХрд╛рдврдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддреЗрдореБрд│реЗ

рдЙрдкрд╛рдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдкреВрд░реНрдг рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдореНрд╣рдгреВрди CPU рд▓реЛрдб ~30%, рдбрд┐рд╕реНрдХ рд▓реЛрдб ~50% рдиреЗ рдХрдореА рдЭрд╛рд▓рд╛:

рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB
рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдЖрдореНрд╣реА рдЕрдЧрджреА рдХрдореА рд▓реЛрдбрд╕рд╣ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЕрдЧрджреА рд╕рдорд╛рди рдЧреЛрд╖реНрдЯ рд▓рд┐рд╣рд┐рдгреЗ рд╕реБрд░реВ рдареЗрд╡рд▓реЗ.

#реи. рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрддреНрдХреНрд░рд╛рдВрддреА рдЖрдгрд┐ рд░реАрдлреЕрдХреНрдЯрд░рд┐рдВрдЧ

рддреНрдпрд╛рдореБрд│реЗ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЬреЗ рдЖрд╣реЗ рддреНрдпрд╛рд╡рд░ рдЖрдореНрд╣реА рд╕реНрдерд┐рд░рд╛рд╡рд▓реЛ рдкреНрд░рддреНрдпреЗрдХ рджрд┐рд╡рд╕рд╛рдЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рд╡рд┐рднрд╛рдЧ рдЕрд╕рддреЛ рдбреЗрдЯрд╛рд╕рд╣. рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд, CHECK (dt = '2018-10-12'::date) тАФ рдЖрдгрд┐ рддреЗрдереЗ рд╡рд┐рднрд╛рдЬрди рдХреА рдЖрд╣реЗ рдЖрдгрд┐ рд░реЗрдХреЙрд░реНрдбрд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рднрд╛рдЧрд╛рдд рдкрдбрдгреНрдпрд╛рдЪреА рдЕрдЯ рдЖрд╣реЗ.

рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡реЗрддреАрд▓ рд╕рд░реНрд╡ рдЕрд╣рд╡рд╛рд▓ рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд╛рд░рдЦреЗрдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, "рд╡рд┐рднрд╛рдЬрд┐рдд рд╡реЗрд│реЗрдкрд╛рд╕реВрди" рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдЖрд╣реЗрдд (рд╕рд░реНрд╡реНрд╣рд░, рддрд╛рд░реАрдЦ, рдпреЛрдЬрдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ), (рд╕рд░реНрд╡реНрд╣рд░, рддрд╛рд░реАрдЦ, рдпреЛрдЬрдирд╛ рдиреЛрдб), (рддрд╛рд░реАрдЦ, рдПрд░рд░ рдХреНрд▓рд╛рд╕, рд╕рд░реНрд╡реНрд╣рд░)...

рдкрдг рдЖрддрд╛ рддреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЧрд╛рдд рд░рд╛рд╣рддрд╛рдд рддреБрдордЪреНрдпрд╛ рдкреНрд░рддреА рдкреНрд░рддреНрдпреЗрдХ рдЕрд╢реА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛... рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЧрд╛рдд рддрд╛рд░реАрдЦ рдПрдХ рд╕реНрдерд┐рд░ рдЖрд╣реЗ... рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рдЖрддрд╛ рдЖрдкрдг рдЕрд╢рд╛ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдд рдЖрд╣реЛрдд рдлрдХреНрдд рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░рд╛ рдлреАрд▓реНрдбрдкреИрдХреА рдПрдХ рдореНрд╣рдгреВрди, рдЬреЗ рддреНрдпрд╛рдЪреЗ рд╡реНрд╣реЙрд▓реНрдпреВрдо рдЖрдгрд┐ рд╢реЛрдз рд╡реЗрд│ рджреЛрдиреНрд╣реА рд╡рд╛рдврд╡рддреЗ, рдкрд░рдВрддреБ рдХреЛрдгрддрд╛рд╣реА рдкрд░рд┐рдгрд╛рдо рдЖрдгрдд рдирд╛рд╣реА. рддреНрдпрд╛рдВрдиреА рд░реЗрдХ рд╕реНрд╡рддрдГрдХрдбреЗ рд╕реЛрдбрд▓рд╛, рдЕрд░реЗрд░реЗ...

рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB
рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдЪреА рджрд┐рд╢рд╛ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ - рд╕реЛрдкреА рд╕рд░реНрд╡ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдордзреВрди рддрд╛рд░реАрдЦ рдлреАрд▓реНрдб рдХрд╛рдврд╛ рд╡рд┐рднрд╛рдЬрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЯреЗрдмрд▓рд╛рдВрд╡рд░. рдЖрдордЪреЗ рдЦрдВрдб рджрд┐рд▓реЗ, рд▓рд╛рдн рд╕реБрдорд╛рд░реЗ рдЖрд╣реЗ 1TB/рдЖрдард╡рдбрд╛!

рдЖрддрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рд╣рд╛ рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ рдЕрдЬреВрди рдХрд╕рд╛ рддрд░реА рд░реЗрдХреЙрд░реНрдб рдХрд░рд╛рдпрдЪрд╛ рд╣реЛрддрд╛. рдореНрд╣рдгрдЬреЗрдЪ рдЖрдкрдгрд╣реА рдбрд┐рд╕реНрдХрдиреЗ рдЖрддрд╛ рдХрдореА рд▓реЛрдб рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ! рд╣реЗ рдЪрд┐рддреНрд░ рд╕рд╛рдлрд╕рдлрд╛рдИрдЪрд╛ рдкрд░рд┐рдгрд╛рдо рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рджрд░реНрд╢рд╡рд┐рддреЗ, рдЬреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдПрдХ рдЖрдард╡рдбрд╛ рд╕рдорд░реНрдкрд┐рдд рдХреЗрд▓рд╛:

рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB

#рей. рд╢рд┐рдЦрд░ рднрд╛рд░ тАЬрдкрд╕рд░рддтАЭ

рд▓реЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд┐рд╕реНрдЯреАрдордЪрд╛ рдПрдХ рдореЛрдард╛ рддреНрд░рд╛рд╕ рдЖрд╣реЗ рдирд┐рд░рд░реНрдердХ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди рдХрд╛рд╣реА рдСрдкрд░реЗрд╢рдиреНрд╕ рдЬреНрдпрд╛рдВрдирд╛ рддреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рддреЗ. рдХрдзреАрдХрдзреА "рдХрд╛рд░рдг рддреНрдпрд╛рдВрдиреА рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдирд╛рд╣реА", рдХрдзреАрдХрдзреА "рддреЗ рддрд╕реЗ рд╕реЛрдкреЗ рд╣реЛрддреЗ", рдкрд░рдВрддреБ рд▓рд╡рдХрд░рдЪ рдХрд┐рдВрд╡рд╛ рдирдВрддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рддреВрди рд╕реБрдЯрдХрд╛ рдХрд░рд╛рд╡реА рд▓рд╛рдЧреЗрд▓.

рдЪрд▓рд╛ рдорд╛рдЧреАрд▓ рдЪрд┐рддреНрд░рд╛рд╡рд░ рдЭреВрдо рдХрд░реВрди рдкрд╛рд╣реВ рдЖрдгрд┐ рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ рдбрд┐рд╕реНрдХ рдЖрд╣реЗ рджреБрд╣реЗрд░реА рдореЛрдареЗрдкрдгрд╛рд╕рд╣ рд▓реЛрдб рдЕрдВрддрд░реНрдЧрдд "рдкрдВрдк". рд╕рдореАрдк рдирдореБрдиреНрдпрд╛рдВрдордзреАрд▓, рдЬреЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ "рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдпрджреГрд╖реНрдЯреНрдпрд╛" рдЕрд╢рд╛ рдЕрдиреЗрдХ рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╣ рд╣реЛрдК рдирдпреЗрдд:

рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB

рд╣реЗ рд╕рд╛рдзреНрдп рдХрд░рдгреЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдЖрдзреАрдЪ рджреЗрдЦрд░реЗрдЦ рд╕реБрд░реВ рдХреЗрд▓реА рдЖрд╣реЗ рдЬрд╡рд│рдЬрд╡рд│ 1000 рд╕рд░реНрд╡реНрд╣рд░, рдкреНрд░рддреНрдпреЗрдХрд╛рд╡рд░ рд╡реЗрдЧрд│реНрдпрд╛ рд▓реЙрдЬрд┐рдХрд▓ рдереНрд░реЗрдбрджреНрд╡рд╛рд░реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рд░рдВрд╡рд╛рд░рддреЗрд╡рд░ рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ рдкрд╛рдард╡рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдЬрдорд╛ рдорд╛рд╣рд┐рддреАрд▓рд╛ рд░реАрд╕реЗрдЯ рдХрд░рддреЛ, рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА:

setInterval(sendToDB, interval)

рдпреЗрдереЗ рд╕рдорд╕реНрдпрд╛ рддрдВрддреЛрддрдВрдд рддреНрдпрд╛ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреАрдд рдЖрд╣реЗ рд╕рд░реНрд╡ рдереНрд░реЗрдбреНрд╕ рдЕрдВрджрд╛рдЬреЗ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╕реБрд░реВ рд╣реЛрддрд╛рдд, рдореНрд╣рдгреВрди рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдкрд╛рдард╡рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│рд╛ рдЬрд╡рд│рдЬрд╡рд│ рдиреЗрд╣рдореАрдЪ "рдореБрджреНрджреНрдпрд╛рд╢реА" рдЬреБрд│рддрд╛рдд. рдЕрд░реЗрд░реЗ #2...

рд╕реБрджреИрд╡рд╛рдиреЗ, рд╣реЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ, рдПрдХ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рд░рди-рдЕрдк рдЬреЛрдбрдд рдЖрд╣реЗ рд╡реЗрд│реЗрдиреБрд╕рд╛рд░:

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

#рек. рдЖрдореНрд╣рд╛рд▓рд╛ рдЬреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рддреЗ рдЖрдореНрд╣реА рдХреЕрд╢ рдХрд░рддреЛ

рддрд┐рд╕рд░реА рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рд╣рд╛рдпрд▓реЛрдб рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗ рдХреЕрд╢реЗ рдирд╛рд╣реА рддреЛ рдХреБрдареЗ рдЖрд╣реЗ рдХрд░реВ рд╢рдХрд▓реЛ рдЕрд╕рдгреЗ

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдореНрд╣реА рдкреНрд▓реЕрди рдиреЛрдбреНрд╕рдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреЗ рд╢рдХреНрдп рдХреЗрд▓реЗ (рд╣реЗ рд╕рд░реНрд╡ Seq Scan on users), рдкрд░рдВрддреБ рддрд╛рдмрдбрддреЛрдм рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛ рдХреА рддреЗ рдмрд╣реБрддреЗрдХ рднрд╛рдЧрд╛рдВрд╕рд╛рдареА рд╕рдорд╛рди рдЖрд╣реЗрдд - рддреЗ рд╡рд┐рд╕рд░рд▓реЗ рдЖрд╣реЗрдд.

рдирд╛рд╣реА, рдЕрд░реНрдерд╛рддрдЪ, рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ рдкреБрдиреНрд╣рд╛ рдХрд╛рд╣реАрд╣реА рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдирд╛рд╣реА, рдпрд╛рдореБрд│реЗ рдЯреНрд░рд┐рдЧрд░ рдмрдВрдж рд╣реЛрддреЛ INSERT ... ON CONFLICT DO NOTHING. рдкрд░рдВрддреБ рд╣рд╛ рдбреЗрдЯрд╛ рдЕрдЬреВрдирд╣реА рдбреЗрдЯрд╛рдмреЗрд╕рдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрддреЛ рдЖрдгрд┐ рддреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЖрд╣реЗ рд╕рдВрдШрд░реНрд╖ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдЪрди рдХрд░рд╛рдпрдЪ рдЖрд╣реЗ. рдЕрд░реЗрд░реЗ #3...

рдХреЕрд╢рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА/рдирдВрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕рд▓рд╛ рдкрд╛рдард╡рд▓реЗрд▓реНрдпрд╛ рд░реЗрдХреЙрд░реНрдбрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрддреАрд▓ рдлрд░рдХ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ:

рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB

рдЖрдгрд┐ рд╕реНрдЯреЛрд░реЗрдЬ рд▓реЛрдбрдордзреНрдпреЗ рд╣реА рд╕реЛрдмрддрдЪреА рдШрдЯ рдЖрд╣реЗ:

рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB

рдПрдХреВрдг

"рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ-рдкреНрд░рддрд┐-рджрд┐рд╡рд╕" тАЛтАЛрдлрдХреНрдд рднрд┐рддреАрджрд╛рдпрдХ рд╡рд╛рдЯрддреЗ. рдЬрд░ рдЖрдкрдг рд╕рд░реНрд╡рдХрд╛рд╣реА рдмрд░реЛрдмрд░ рдХреЗрд▓реЗ рддрд░ рд╣реЗ рдлрдХреНрдд рдЖрд╣реЗ 2^40 рдмрд╛рдЗрдЯ / 86400 рд╕реЗрдХрдВрдж = ~12.5MB/sрдЕрдЧрджреА рдбреЗрд╕реНрдХрдЯреЙрдк IDE screws рдзрд░рд▓реЗ. ЁЯЩВ

рдкрд░рдВрддреБ рдЧрдВрднреАрд░рдкрдгреЗ, рджрд┐рд╡рд╕рд╛ рд▓реЛрдбрдЪреНрдпрд╛ рджрд╣рд╛рдкрдЯ "рд╕реНрдХреНрдпреВ" рд╕рд╣, рдЖрдкрдг рдЖрдзреБрдирд┐рдХ рдПрд╕рдПрд╕рдбреАрдЪреНрдпрд╛ рдХреНрд╖рдорддрд╛ рд╕рд╣рдЬрдкрдгреЗ рдкреВрд░реНрдг рдХрд░реВ рд╢рдХрддрд╛.

рдЖрдореНрд╣реА Sublight рд╡рд░ PostgreSQL рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рд╡рд╕, 1TB

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛