рд╣рдо PostgreSQL рдореЗрдВ рдПрдХ рдЙрдкрд▓рд╛рдЗрдЯ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ: 1 рд╣реЛрд╕реНрдЯ, 1 рджрд┐рди, 1 рдЯреАрдмреА

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


# 1ред рд╡рд┐рднрд╛рдЬрди


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

"рдмреАрддреЗ рджрд┐рдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ ..."


рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдХрд┐рд╕реА рднреА рдПрдорд╡реАрдкреА рдХреА рддрд░рд╣, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рдлреА рдЫреЛрдЯреЗ рднрд╛рд░ рдХреЗ рддрд╣рдд рд╢реБрд░реВ рд╣реБрдИ - рдирд┐рдЧрд░рд╛рдиреА рдХреЗрд╡рд▓ рджрд╕ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреА рдЧрдИ, рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХреЙрдореНрдкреИрдХреНрдЯ рдереАрдВ ... рд▓реЗрдХрд┐рди рд╕рдордп рдмреАрддрдиреЗ рдХреЗ рд╕рд╛рде, рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдирд┐рдЧрд░рд╛рдиреА рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдореЗрдЬрдмрд╛рди рдереЗ, рдФрд░ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА 1.5TB рдХреЗ рдЖрдХрд╛рд░ рд╡рд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ , рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрджреНрдпрдкрд┐ рдЗрд╕ рддрд░рд╣ рд░рд╣рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдЯрд╛рдЗрдореНрд╕ рд▓рдЧрднрдЧ рдорд╣рд╛рдХрд╛рд╡реНрдп рдереЗ, рд╡рд┐рднрд┐рдиреНрди PostgreSQL 9.x рд╡реЗрд░рд┐рдПрдВрдЯ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдереЗ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдХреЛ "рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ" рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ - рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд░рд╛рд╕рдд рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдорд╛рд░реНрдЧ рдЯреНрд░рд┐рдЧрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ EXECUTEред


рдкрд░рд┐рдгрд╛рдореА рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд▓рд╛ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:


PG10:


рд▓реЗрдХрд┐рди рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рднрд╛рдЬрди рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рд╕рдХреНрд░рд┐рдп рд▓реЗрдЦрди рдзрд╛рд░рд╛ рдпрд╛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд╛рд▓ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╣ рдпрд╛рдж рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдЕрдиреБрднрд╛рдЧ рдХреЗ рдЪрдпрди рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рджреНрд╡рд┐рдШрд╛рдд рдЬрдЯрд┐рд▓рддрд╛ рдереА , рдЬреЛ рдХрд┐ 100+ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ ...

PG10 рдореЗрдВ, рдпрд╣ рд╕реНрдерд┐рддрд┐ рджреЗрд╢реА рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдмрд╣реБрдд рдЕрдиреБрдХреВрд▓рд┐рдд рдереА ред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рддреБрд░рдВрдд рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди ...

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдореИрдиреБрдЕрд▓ рдХреЛ рдЦреЛрджрдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рдХрд▓рд╛, рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рддрд╛рд▓рд┐рдХрд╛:

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

рджрд░реНрджрдирд╛рдХ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдорд╛рдереЗ рдкрд░ рдПрдХ рд░реЗрдХ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо рдЖрд╡реЗрджрди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗ, рдФрд░ рдЫрд╣ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╢реЛрдз рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ред

PG10: рджреВрд╕рд░рд╛ рдореМрдХрд╛


рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛:

  1. рдЪреВрдВрдХрд┐ рдЯреНрд░рд┐рдЧрд░ ON CONFLICTрдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдП рдереЗ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░реЙрдХреНрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ ред
  2. рд╣рдордиреЗ рдЯреНрд░рд┐рдЧрд░реНрд╕ рдореЗрдВ "рд░реВрдЯрд┐рдВрдЧ" рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓рд┐рдпрд╛ - рдЕрд░реНрдерд╛рддреН EXECUTEред
  3. рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рднреА рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЯреЗрдмрд▓ рдирд┐рдХрд╛рд▓реА рддрд╛рдХрд┐ рд╡реЗ рдкреНрд░реЙрдХреНрд╕реА рдЯреЗрдмрд▓ рдкрд░ рднреА рдореМрдЬреВрдж рди рд╣реЛрдВред


рдЕрдВрдд рдореЗрдВ, рдЗрд╕ рд╕рдм рдХреЗ рдмрд╛рдж, рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛ рдЧрдИ рд╣реИред рдПрдХ рдирдпрд╛ рдЕрдиреБрднрд╛рдЧ рдмрдирд╛рдирд╛ рдЖрд╡реЗрджрди рдХреА рдЕрдВрддрд░рд╛рддреНрдорд╛ рдХреА рдЖрд╡рд╛рдЬ рдкрд░ рдмрдирд╛ рд╣реБрдЖ рд╣реИред

"рджреЗрдЦрд╛" рд╢рдмреНрджрдХреЛрд╢реЛрдВ


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

рд╣рдорд╛рд░реЗ "рддрдереНрдпреЛрдВ" рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╢рд╛рдВрддрд┐ рд╕реЗ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рдореЗрдВ (рд▓реЙрдЧ!) рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЬрд┐рди рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдорд╕реНрдпрд╛

рд╕рд╛рдордиреЗ рдЖрдИ ... рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд╣реАрдВ рдереЗ, рд▓реЗрдХрд┐рди рд▓рдЧрднрдЧ 100TB "рддрдереНрдпреЛрдВ" рд╕реЗ 2.5TB рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдирд┐рдХрд▓рд╛ ред рдЖрдк рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдХреБрдЫ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рдирд╣реАрдВ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдиреЗ рдЗрд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдореЗрдВ рдирд┐рдЪреЛрдбрд╝ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд▓рд┐рдЦрдирд╛ рдзреАрд░реЗ-рдзреАрд░реЗ рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред

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

  • рдЫреЛрдЯреЗ рдЦрдВрдб рдЖрдХрд╛рд░ рдХреЗ рдХрд╛рд░рдг рддреЗрдЬреА рд╕реЗ рд▓рд┐рдЦрдирд╛ / рдкрдврд╝рдирд╛
  • рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдХреЗ рдХрдо рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░реЗрдВ
  • рдХрдо рдбреЗрдЯрд╛ рдХреЛ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣рдЯрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдХрд╛рд░рдг рдХрдо рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ

рдЙрдкрд╛рдпреЛрдВ рдХреЗ рдкреВрд░реЗ рдкрд░рд┐рд╕рд░ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк , рд╕реАрдкреАрдпреВ рд▓реЛрдб ~ 30% рдФрд░ рдбрд┐рд╕реНрдХ рджреНрд╡рд╛рд░рд╛ рдШрдЯрд╛рдпрд╛ рдЧрдпрд╛ - ~ 50% рджреНрд╡рд╛рд░рд╛ :


рдЙрд╕реА рд╕рдордп, рд╣рдордиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдареАрдХ рдЙрд╕реА рдЪреАрдЬрд╝ рдХреЛ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛, рдмрд╕ рдХрдо рд▓реЛрдб рдХреЗ рд╕рд╛рдеред

# реи рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ


рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЗрд╕ рддрдереНрдп рдкрд░ рд╕рдордЭреМрддрд╛ рдХрд┐рдпрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рджрд┐рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ рдЦрдВрдб рд╣реИ ред рджрд░рдЕрд╕рд▓, рдпрд╣ CHECK (dt = '2018-10-12'::date)рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЦрдВрдб рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрди рдХреБрдВрдЬреА рдФрд░ рд╕реНрдерд┐рддрд┐ рд╣реИред

рдЪреВрдБрдХрд┐ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреА рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд┐рдерд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ, рддреЛ "рдЧреИрд░-рд╡рд┐рднрд╛рдЬрд┐рдд рд╕рдордп" рд╕реЗ рд╕рдВрдХреЗрдд рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдереЗ (рд╕рд░реНрд╡рд░, рддрд┐рдерд┐ , рдпреЛрдЬрдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ) , (рд╕рд░реНрд╡рд░, рддрд┐рдерд┐ , рдпреЛрдЬрдирд╛ рдиреЛрдб) , ( рддрд┐рдерд┐ , рддреНрд░реБрдЯрд┐ рд╡рд░реНрдЧ) рд╕рд░реНрд╡рд░) , ...

рд▓реЗрдХрд┐рди рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдРрд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ ... рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрднрд╛рдЧ рдХреЗ рднреАрддрд░ рддрд╛рд░реАрдЦ рд╕реНрдерд┐рд░ рд╣реИ ... рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЕрдм рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдРрд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╣реИрдВрд╣рдо рддреБрдЪреНрдЫ рд░реВрдк рд╕реЗ рдЦреЗрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕рдХреА рдорд╛рддреНрд░рд╛, рдФрд░ рдЙрд╕ рдкрд░ рдЦреЛрдЬ рдХрд╛ рд╕рдордп рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд▓рд╛рддрд╛ рд╣реИред рдЦреБрдж рдХреЛ рдПрдХ рд░реЗрдХ рдЫреЛрдбрд╝ рджрд┐рдпрд╛, рдЙрдлрд╝ ...


рдЕрдиреБрдХреВрд▓рди рдХреА рджрд┐рд╢рд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдмрд╕ рд╡рд┐рднрд╛рдЬрд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рд╕рднреА рдЕрдиреБрдХреНрд░рдорд┐рдд рд╕реЗ рджрд┐рдирд╛рдВрдХ рдлрд╝реАрд▓реНрдб рдирд┐рдХрд╛рд▓реЗрдВ ред рд╣рдорд╛рд░реЗ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕рд╛рде, рд▓рд╛рдн рд▓рдЧрднрдЧ 1TB / рд╕рдкреНрддрд╛рд╣ рд╣реИ !

рдФрд░ рдЕрдм рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ рдХреЛ рдЕрднреА рднреА рдХрд┐рд╕реА рддрд░рд╣ рдиреАрдЪреЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдерд╛ред рдпрд╣реА рд╣реИ, рд╣рдореЗрдВ рднреА рдЕрдм рдХрдо рдбрд┐рд╕реНрдХ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ! рдЗрд╕ рдЪрд┐рддреНрд░ рдореЗрдВ, рд╕рдлрд╛рдИ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рднрд╛рд╡, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:



# 3 рдкреАрдХ рд▓реЛрдб "рд╕реНрдорд┐рдпрд░"


рднрд░реА рд╣реБрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреА рдмрдбрд╝реА рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдХреБрдЫ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХрднреА-рдХрднреА "рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛", рдХрднреА-рдХрднреА "рдпрд╣ рдЖрд╕рд╛рди рдерд╛", рд▓реЗрдХрд┐рди рдЬрд▓реНрдж рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рд╣реЛрдЧрд╛ред

рд╣рдо рдкрд┐рдЫрд▓реА рддрд╕реНрд╡реАрд░ рдХреЛ рдХрд░реАрдм рд▓рд╛рддреЗ рд╣реИрдВ - рдФрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдбрд┐рд╕реНрдХ рдкрдбрд╝реЛрд╕реА рдирдореВрдиреЛрдВ рдХреЗ рдмреАрдЪ рджреЛрд╣рд░реЗ рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЛрдб рдХреЗ рд╕рд╛рде "рд╣рд┐рд▓рд╛рддрд╛ рд╣реИ" , рдЬреЛ рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде "рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп" рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:



рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рд▓рдЧрднрдЧ 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 ...

рдХреИрд╢рд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ / рдмрд╛рдж рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднреЗрдЬреЗ рдЧрдП рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдВрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ:



рдФрд░ рдпрд╣ рд╕реНрдЯреЛрд░реЗрдЬ рд▓реЛрдб рдореЗрдВ рдПрдХ рд╕рд╣рд╡рд░реНрддреА рдЧрд┐рд░рд╛рд╡рдЯ рд╣реИ:



рд╕рдВрдкреВрд░реНрдг


рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ-рдкреНрд░рддрд┐-рджрд┐рди рдХреЗрд╡рд▓ рдбрд░рд╛рд╡рдирд╛ рд▓рдЧрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕рдм рдХреБрдЫ рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ 2 ^ 40 рдмрд╛рдЗрдЯреНрд╕ / 86400 рд╕реЗрдХрдВрдб = ~ 12.5MB / s рд╣реИ , рдЬреЛ рдХрд┐ рдбреЗрд╕реНрдХрдЯреЙрдк IDE рд╢рд┐рдХрдВрдЬрд╛ рднреА рд╣реИред :)

рд▓реЗрдХрд┐рди рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджрд┐рди рдХреЗ рджреМрд░рд╛рди рд▓реЛрдб рдХреЗ рджрд╕ рдЧреБрдирд╛ "рддрд┐рд░рдЫрд╛" рдХреЗ рд╕рд╛рде, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрдзреБрдирд┐рдХ рдПрд╕рдПрд╕рдбреА рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


All Articles