рд╣рд╛рдореА Sublight рдорд╛ PostgreSQL рдорд╛ рд▓реЗрдЦреНрдЫреМрдВ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рди, 1TB

рднрд░реНрдЦрд░реИ рдореИрд▓реЗ рдорд╛рдирдХ рд╡реНрдпрдЮреНрдЬрдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд╕рд░реА, рддрдкрд╛рдИрдВрд▓рд╛рдИ рднрдиреЗрдВ SQL рдкрдвреНрдиреЗ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдмрдврд╛рдЙрдиреБрд╣реЛрд╕реН PostgreSQL рдбрд╛рдЯрд╛рдмреЗрд╕рдмрд╛рдЯред рдЖрдЬ рд╣рд╛рдореА рдХрд╕рд░реА рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рд░реЗрдХрд░реНрдбрд┐рдЩ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдХреБрдиреИ рдкрдирд┐ "рдЯреНрд╡рд┐рд╕реНрдЯ" рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ - рдХреЗрд╡рд▓ рдбрд╛рдЯрд╛ рдкреНрд░рд╡рд╛рд╣рд╣рд░реВ рд╕рд╣реА рд░реВрдкрдорд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗрд░ред

рд╣рд╛рдореА Sublight рдорд╛ PostgreSQL рдорд╛ рд▓реЗрдЦреНрдЫреМрдВ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рди, 1TB

#резред рдЦрдгреНрдбреАрдХрд░рдг

рдпреЛ рдХрд╕рд░реА рд░ рдХрд┐рди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдПрдХ рд▓реЗрдЦ рд▓рд╛рдЧреВ рд╡рд┐рднрд╛рдЬрди "рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛" рдкрд╣рд┐рд▓реЗ рдиреИ рднрдЗрд╕рдХреЗрдХреЛ рдЫ, рдпрд╣рд╛рдБ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рднрд┐рддреНрд░ рдХреЗрд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдЕрднреНрдпрд╛рд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рд╕рдпреМрдВ 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)

рд╕рдорд╕реНрдпрд╛ рдпрд╣рд╛рдБ рдареНрдпрд╛рдХреНрдХреИ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдирд┐рд╣рд┐рдд рдЫ рд╕рдмреИ рдереНрд░реЗрдбрд╣рд░реВ рд▓рдЧрднрдЧ рдПрдХреИ рд╕рдордпрдорд╛ рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкрдард╛рдЙрдиреЗ рд╕рдордп рд▓рдЧрднрдЧ рд╕рдзреИрдВ "рдмрд┐рдиреНрджреБрдорд╛" рдореЗрд▓ рдЦрд╛рдиреНрдЫред рдЙрдлреН #реи...

рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, рдпреЛ рдареАрдХ рдЧрд░реНрди рдПрдХрджрдо рд╕рдЬрд┐рд▓реЛ рдЫ, "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рд░рди-рдЕрдк рдердкреНрджреИ рд╕рдордп рджреНрд╡рд╛рд░рд╛:

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

#рекред рд╣рд╛рдореАрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рдХреБрд░рд╛ рдХреНрдпрд╛рд╕ рдЧрд░реНрдЫреМрдВ

рддреЗрд╕реНрд░реЛ рдкрд░рдореНрдкрд░рд╛рдЧрдд рд╣рд╛рдИрд▓реЛрдб рд╕рдорд╕реНрдпрд╛ рд╣реЛ рдХреБрдиреИ рдХреНрдпрд╛рд╕ рдЫреИрди рдЙрд╣рд╛рдБ рдХрд╣рд╛рдБ рд╣реБрдиреБрд╣реБрдиреНрдЫ рд╕рдХреНрдЫ рд╣реБрдиреБред

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдпреЛрдЬрдирд╛ рдиреЛрдбрд╣рд░реВ (рдпреА рд╕рдмреИ Seq Scan on users), рддрд░ рддреБрд░реБрдиреНрддреИ рд╕реЛрдЪреНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрд┐рдиреАрд╣рд░реВ рд╣реБрдиреН, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐, рдЙрд╕реНрддреИ - рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдмрд┐рд░реНрд╕рдиреБрднрдпреЛред

рд╣реЛрдЗрди, рдЕрд╡рд╢реНрдп рдкрдирд┐, рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдлреЗрд░рд┐ рдХреЗрд╣рд┐ рдкрдирд┐ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫреИрди, рдпрд╕рд▓реЗ рдЯреНрд░рд┐рдЧрд░рд▓рд╛рдИ рдХрд╛рдЯреНрдЫ INSERT ... ON CONFLICT DO NOTHINGред рддрд░ рдпреЛ рдбрд╛рдЯрд╛ рдЕрдЭреИ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдкреБрдЧреНрдЫ, рд░ рдпреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЫ рджреНрд╡рдиреНрджреНрд╡ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдкрдвреНрди рдЧрд░реНрдиреБ рдкрд░реНрдЫред рдЙрдлреН #рей...

рдХреНрдпрд╛рд╕рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реБрдиреБ рдЕрдШрд┐ / рдкрдЫрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдкрдард╛рдЗрдПрдХрд╛ рд░реЗрдХрд░реНрдбрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рднрд┐рдиреНрдирддрд╛ рд╕реНрдкрд╖реНрдЯ рдЫ:

рд╣рд╛рдореА Sublight рдорд╛ PostgreSQL рдорд╛ рд▓реЗрдЦреНрдЫреМрдВ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рди, 1TB

рд░ рдпреЛ рднрдгреНрдбрд╛рд░рдг рд▓реЛрдбрдорд╛ рд╕рдБрдЧреИ рдбреНрд░рдк рд╣реЛ:

рд╣рд╛рдореА Sublight рдорд╛ PostgreSQL рдорд╛ рд▓реЗрдЦреНрдЫреМрдВ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рди, 1TB

рдХреБрд▓

"рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ-рдкреНрд░рддрд┐-рджрд┐рди" рдбрд░рд▓рд╛рдЧреНрджреЛ рд╕реБрдирд┐рдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рдмреИ рдХреБрд░рд╛ рдареАрдХ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдпреЛ рдорд╛рддреНрд░ рд╣реЛ 2^40 рдмрд╛рдЗрдЯреНрд╕ / 86400 рд╕реЗрдХреЗрдиреНрдб = ~12.5MB/sрддреНрдпреЛ рдкрдирд┐ рдбреЗрд╕реНрдХрдЯрдк IDE рд╕реНрдХреНрд░реВ рд░рд╛рдЦрд┐рдПрдХреЛ рдЫред ЁЯЩВ

рддрд░ рдЧрдореНрднреАрд░ рд░реВрдкрдорд╛, рджрд┐рдирдХреЛ рд╕рдордпрдорд╛ рд▓реЛрдбрдХреЛ рджрд╕ рдЧреБрдгрд╛ "рд╕реНрдХреНрдпреВ" рд╕рдВрдЧ рдкрдирд┐, рддрдкрд╛рдЗрдБ рд╕рдЬрд┐рд▓реИ рд╕рдВрдЧ рдЖрдзреБрдирд┐рдХ SSD рдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд╣рд╛рдореА Sublight рдорд╛ PostgreSQL рдорд╛ рд▓реЗрдЦреНрдЫреМрдВ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рди, 1TB

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди