рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ PostgreSQL рдХреНрд╡реЗрд░реА рдЕрдиреБрдХреВрд▓рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡ (рдЯреЗрдиреНрд╕рд░)

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

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


SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ PostgreSQL рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ DBA рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рдХреМрди рд╣реИ ? рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рднреА рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред


рдореЗрд░рд╛ рдирд╛рдо рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡ рд╣реИ, рдореИрдВ рдХрдВрдкрдиреА "рдЯреЗрдирд╕рд░" рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реВрдВ ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореИрдВ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реВрдВред

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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдорд╛рд░реЗ рд▓рд╛рдЦреЛрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП "рд╕реЗрдВрд╕рд░" рд╡реАрдПрд▓рдПрд╕рдЖрдИ рд╣реИ - рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди : рдПрдХ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ, рд╡реАрдбрд┐рдпреЛ рд╕рдВрдЪрд╛рд░ рд╕рдорд╛рдзрд╛рди, рдЖрдВрддрд░рд┐рдХ рдФрд░ рдмрд╛рд╣рд░реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП, рдмрд╣реАрдЦрд╛рддрд╛ рдФрд░ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрд╛рдВрдХрди рдкреНрд░рдгрд╛рд▓реА ... рдЕрд░реНрдерд╛рддреН, рдПрдХреАрдХреГрдд рдкреНрд░рдмрдВрдзрди рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ "рдореЗрдЧрд╛-рдЧрдардмрдВрдзрди" рд╣реИред рдЬреЛ 100 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рднрд┐рдиреНрди рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╣реИред

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡реЗ рд╕рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░реЗ рджреЗрд╢ рдореЗрдВ 10 рд╡рд┐рдХрд╛рд╕ рдХреЗрдВрджреНрд░ рд╣реИрдВ, рдЙрдирдХреЗ 1000 рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ ред

рд╣рдо 2008 рд╕реЗ PostgreSQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рдордиреЗ рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╣реИ, рдЙрд╕рдХреА рдПрдХ рдмрдбрд╝реА рд░рд╛рд╢рд┐ рдЬрдорд╛ рдХреА рд╣реИ - рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдбреЗрдЯрд╛, рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп, рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ, рдмрд╛рд╣рд░реА рд╕реВрдЪрдирд╛ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдбреЗрдЯрд╛ - 400TB рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ ред рдХреЗрд╡рд▓ "рдЙрддреНрдкрд╛рджрди рдореЗрдВ" рд▓рдЧрднрдЧ 250 рд╕рд░реНрд╡рд░ рд╣реИрдВ, рдФрд░ рдХреБрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдЬреЛ рд╣рдо рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╣реИрдВ рд▓рдЧрднрдЧ 1000 рд╣реИрдВред



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

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

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



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдбреЗрд╡рд▓рдкрд░ [рдбреАрдмреАрдП рдореЗрдВ] рдЖрдорддреМрд░ рдкрд░ рдХрд┐рди рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ? "рдпрд╣рд╛рдБ рд╣рдордиреЗ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╕рдм рдХреБрдЫ рдзреАрдорд╛ рд╣реИ , рд╕рдм рдХреБрдЫ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ, рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ ... рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдкрд░реЗрд╢рд╛рдиреА!"

рдХрд╛рд░рдг рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВ:


  • : ┬л SQL 10 JOIN...┬╗ тАФ , ┬л┬╗, . , (10 FROM) - . []

  • PostgreSQL, ┬л┬╗ , тАФ ┬л┬╗ . 10 , 10 , PostgreSQL , . []
  • ┬л┬╗
    , , , . тАж - , .

  • , (INSERT, UPDATE, DELETE) тАФ .


... рдФрд░ рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ! рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред



PostgreSQL рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдПрдХ рдкрд╛рда рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдПрдХ рдкреЗрдбрд╝ рд╣реИред рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИ рдХрд┐, рдпреЛрдЬрдирд╛рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдереАред

рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░реА рдиреЛрдб рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реИ: рдПрдХ рдЯреЗрдмрд▓ рдпрд╛ рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдирд╛, рдПрдХ рдмрд┐рдЯрдореИрдк рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛, рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛, рдЬреБрдбрд╝рдирд╛, рдХрд╛рдЯрдирд╛, рдпрд╛ рдирдореВрдиреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ред рдЕрдиреБрд░реЛрдз рдХреА рдкреВрд░реНрддрд┐ рдЗрд╕ рдкреЗрдбрд╝ рдХреЗ рдиреЛрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдорд╛рд░реНрдЧ рд╣реИред

рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдерди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ EXPLAINред рд╕рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрд░реНрдерд╛рдд, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ EXPLAIN (ANALYZE, BUFFERS) SELECT ...ред

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



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

рдпрджрд┐ рд╡рд╣ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЧрдП рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдХрд╛ "рд╕реНрдиреИрдкрд╢реЙрдЯ" рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд▓реЙрдЧ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ ред



рдЕрдм рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд╣рдо рд▓реЙрдЧ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рджреЗрдЦрддреЗ рд╣реИрдВ ... [рдкрд╛рда рдкрд╛рдж]ред рд▓реЗрдХрд┐рди рд╣рдо рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдпреЛрдЬрдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ 11ms рд▓рдЧрддреЗ рд╣реИрдВред

рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ - рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдХреБрд▓ рд╕рдордп рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ "рд▓рдЯреБрд╣рд╛" рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рджрд╛ рдкрд╛рда рдЖрдо рддреМрд░ рдкрд░ рдкреНрд░рд┐рдп рд╣реИред

рд▓реЗрдХрд┐рди рднрд▓реЗ рд╣реА рдпрд╣ рдкреНрд░рд┐рдп рд╣реЛ, рднрд▓реЗ рд╣реА рдЕрд╕рд╣рдЬ рд╣реЛ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рднреА рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:

  • . , Index Scan тАФ , - . , ┬л┬╗ , CTE тАФ ┬л ┬╗.
  • : , , тАФ . , , , , loops тАФ . . , , , тАФ - ┬л ┬╗.

рдЗрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд╕рдордЭреЗрдВ "рд╕рдмрд╕реЗ рдХрдордЬреЛрд░ рдХрдбрд╝реА рдХреМрди рд╣реИ?" рд▓рдЧрднрдЧ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХред рдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЦреБрдж "рдореИрдиреБрдЕрд▓" рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ "рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдордЭрдирд╛ рдПрдХ рдХрд▓рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реАрдЦрдиреЗ, рдЕрдиреБрднрд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ..." ред

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

рджреГрд╢реНрдп рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВ


рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдпреЛрдЬрдирд╛ рдХреЗ рдПрдХ рдЕрдЪреНрдЫреЗ рджреГрд╢реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред [рд▓реЗрдЦ]



рд╣рдо рдкрд╣рд▓реЗ "рдмрд╛рдЬрд╛рд░ рдХреЗ рдЖрд╕рдкрд╛рд╕" рдЧрдП - рдЖрдЗрдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рдореМрдЬреВрдж рд╣реИред

: рд╕рдЪрдореБрдЪ, рдПрдХ рдмрд╛рдд - рд▓реЗрдХрд┐рди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд "рд▓рд╛рдЗрд╡" рд╕рдорд╛рдзрд╛рди рд╣реИ рдХрд┐ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдмрд╣реБрдд рдХрдо рд╣реИрдВ explain.depesz.com рд╣реБрдмрд░реНрдЯ Lubaczewski рд╕реЗред рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ "рдлрд╝реАрдб" рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рдкрд╛рдареАрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рдпрд╣ рдЖрдкрдХреЛ рдкрд╛рд░реНрд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд▓реЗрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

  • рдЙрдЪрд┐рдд рдиреЛрдб рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдордп
  • рд╕рдВрдкреВрд░реНрдг рдЙрдк-рд╕рдордп рдкрд░ рдХреБрд▓ рд╕рдордп
  • рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИ рдереА рдФрд░ рдЬреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдереА
  • рдиреЛрдб рд╢рд░реАрд░ рд╣реА

рдЗрд╕ рд╕реЗрд╡рд╛ рдореЗрдВ рд▓рд┐рдВрдХ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рд╣реИред рдЖрдкрдиреЗ рдЕрдкрдиреА рдпреЛрдЬрдирд╛ рдХреЛ рд╡рд╣рд╛рдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдФрд░ рдХрд╣рд╛: "рдЕрд░реЗ, рд╡рд╛рд╕рд┐рдпрд╛, рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реИ, рд╡рд╣рд╛рдВ рдХреБрдЫ рдЧрд▓рдд рд╣реИред"



рд▓реЗрдХрд┐рди рдХреБрдЫ рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ред рдЖрдк рд▓реЙрдЧ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд▓реЗрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕реЗред

рджреВрд╕рд░реЗ, рдбреЗрдЯрд╛ рд░реАрдб рдХреА рдорд╛рддреНрд░рд╛ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рд╣реИ - рдмрд╣реБрдд рдмрдлрд╝рд░реНрд╕ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ EXPLAIN (ANALYZE, BUFFERS), рдпрд╣рд╛рдВ рд╣рдо рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рд╡рд╣ рдмрд╕ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЬреБрджрд╛, рд╕рдордЭреЗрдВ рдФрд░ рдХрд╛рдо рдХрд░реЗрдВред рдЬрдм рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдбрд┐рд╕реНрдХ рдкрд░ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ "рд╡рд┐рдШрдЯрд┐рдд" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореЗрдореЛрд░реА рдореЗрдВ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рддреАрд╕рд░рд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдмрд┐рдВрджреБ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдмрд╣реБрдд рдХрдордЬреЛрд░ рд╡рд┐рдХрд╛рд╕ рд╣реИред рдХрдорд┐рдЯреНрд╕ рдмрд╣реБрдд рдЫреЛрдЯреЗ рд╣реИрдВ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рд╣рд░ рдЫрд╣ рдорд╣реАрдиреЗ рдореЗрдВ, рдФрд░ рдкрд░реНрд▓ рдореЗрдВ рдХреЛрдбред



рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм "рдЧреАрдд" рд╣реИ, рдХреЛрдИ рднреА рдЗрд╕рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдЗрд╕ рд╕реЗрд╡рд╛ рд╕реЗ рджреВрд░ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдпреЗ рдХреЙрдорди рдЯреЗрдмрд▓ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди (CTE) рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЧрддрд┐рд╢реАрд▓ рдиреЛрдбреНрд╕ рдЬреИрд╕реЗ InitPlan / SubPlan рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЗрд╕ рдЪрд┐рддреНрд░ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдиреЛрдб рдХрд╛ рдХреБрд▓ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдкреВрд░реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдХреБрд▓ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдпрд╣ рд╕рд░рд▓ рд╣реИ - рдЗрд╕ CTE рдХрд╛ рдкреАрдврд╝реА рд╕рдордп CTE рд╕реНрдХреИрди рдиреЛрдб рд╕реЗ рдШрдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдерд╛ ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдм рд╕рд╣реА рдЙрддреНрддрд░ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕реАрдЯреАрдИ рд╕реНрдХреИрди рдиреЗ рдЦреБрдж рдХреЛ рдХрд┐рддрдирд╛ рд▓рд┐рдпрд╛ред



рддрдм рд╣рдореЗрдВ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рдерд╛ - рд╣реБрд░реНрд░реЗ! рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХрд╣рддрд╛ рд╣реИ: "рдЕрдм рд╣рдо рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдпрд╣ рд╕рд┐рд░реНрдл рд╕реБрдкрд░ рд╣реЛрдЧрд╛!"

рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдвреЗрд░ рд▓рд┐рдпрд╛: Node.js + рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкрд░ рдХреЛрд░, рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдФрд░ рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рдЦреАрдВрдЪрд╛ - D3-js. рдФрд░ рд╣рдорд╛рд░реА рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ рдЙрдЪрд┐рдд рдереАрдВ - рд╣рдореЗрдВ 2 рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдкрд╣рд▓рд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдорд┐рд▓рд╛:

  • рдЦреБрдж рдХреА рдпреЛрдЬрдирд╛ рдкрд╛рд░реНрд╕рд░
    рд╣реИ, рдЕрдм рд╣рдо рдЖрдо рддреМрд░ рдкрд░ PostgreSQL рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рд╕реА рднреА рдпреЛрдЬрдирд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • рдбрд╛рдпрдиреЗрдорд┐рдХ рдиреЛрдбреНрд╕ рдХрд╛ рд╕рд╣реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг - CTE рд╕реНрдХреИрди, InitPlan, SubPlan
  • рдмрдлрд╝рд░реНрд╕ рдХреЗ рд╡рд┐рддрд░рдг рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг - рдЬрд╣рд╛рдВ рдореЗрдореЛрд░реА рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рдкреГрд╖реНрда рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рд╕реЗ, рдЬрд╣рд╛рдВ рдбрд┐рд╕реНрдХ рд╕реЗ
  • рджреГрд╢реНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИ
    рддрд╛рдХрд┐ рдпрд╣ "рд▓реЙрдЧ рдореЗрдВ" рди рд╣реЛ рдХрд┐ рдпрд╣ "рдЦреБрджрд╛рдИ" рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐ рдЖрдк рддрд╕реНрд╡реАрд░ рдореЗрдВ "рд╕рдмрд╕реЗ рдХрдордЬреЛрд░ рд▓рд┐рдВрдХ" рддреБрд░рдВрдд рджреЗрдЦрддреЗ рд╣реИрдВред



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

рдпрд╣ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рджреГрд╢реНрдп рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдпреЛрдЬрдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╣рддреЗ рд╣реИрдВ ред



рдФрд░ рдХреНрдпрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛? рдпрд╣ рджреЗрдЦрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдХрд┐ рдХреБрд▓ рд╕рдордп рдХрд╛ рдХреМрди рд╕рд╛ рдЕрдиреБрдкрд╛рдд рд╣рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдФрд░ рд╕рд╛рдЗрдб рдкрд░ рдкрд╛рдИ рдЪрд╛рд░реНрдЯ рдХреЛ "рдЕрдЯрдХ" рдХрд░ рджрд┐рдпрд╛ рд╣реИ ред

рд╣рдо рдиреЛрдб рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ - рд╣рдорд╛рд░реЗ рд╕рд╛рде, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ Seq рд╕реНрдХреИрди рдиреЗ рдкреВрд░реЗ рд╕рдордп рдХреЗ рдПрдХ рдЪреМрдерд╛рдИ рд╕реЗ рднреА рдХрдо рд╕рдордп рд▓рд┐рдпрд╛, рдФрд░ рд╢реЗрд╖ 3/4 рдиреЗ CTE рд╕реНрдХреИрди рд▓рд┐рдпрд╛ред рдбрд░рд╛рд╡рдиреА! рдпрд╣ рд╕реАрдЯреАрдИ рд╕реНрдХреИрди рдХреА "рдЖрдЧ рдХреА рджрд░" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдмрд╣реБрдд рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИрдВ - рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдмрд▓ рд╕реНрдХреИрди рддрдХ рднреА рдЦреЛ рджреЗрддреЗ рд╣реИрдВред [рд▓реЗрдЦ] [рд▓реЗрдЦ]

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



рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ "рд░реЗрдХ" рдерд╛ред

рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ "рдЖрдЧреЗ рдмрдврд╝рд╛рдИ" рд╡рд╣ рд╣реИ рдЧреЛрд▓рд╛рдИ рдХреА рд╕рдорд╕реНрдпрд╛ред рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдиреЛрдб рд╕рдордп рдХреЛ 1 ╬╝ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЬрдм рдиреЛрдб рдЪрдХреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1000 - рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж PostgreSQL рдиреЗ рдЗрд╕реЗ "рдЕрдк" рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд░рд┐рд╡рд░реНрд╕ рдЧрдгрдирд╛ рдореЗрдВ рд╣рдореЗрдВ рдХреБрд▓ рд╕рдордп "рдХрд╣реАрдВ рдФрд░ 0.95ms рдФрд░ 1.05ms" рдХреЗ рдмреАрдЪ рдорд┐рд▓рддрд╛ рд╣реИред рдЬрдм рдЦрд╛рддреЗ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЕрднреА рддрдХ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА [рдорд┐рд▓рд┐] рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рд╣реИ - рддреЛ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрдм рдпреЛрдЬрдирд╛ рдХреЗ рдиреЛрдбреНрд╕ рдкрд░ "рдПрдХрдЬреБрдЯ" рд╕рдВрд╕рд╛рдзрди "рдЬрд┐рд╕рдиреЗ рдХрд┐рддрдиреА рдЦрдкрдд рдХреА рд╣реИ"ред



рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБ, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓, рдЧрддрд┐рд╢реАрд▓ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╡рд┐рддрд░рдг (рдЙрдиреНрд╣реАрдВ рдмрдлрд╝рд░реНрд╕) рд╣реИред рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдкрд╣рд▓реЗ 2 рд╕рдкреНрддрд╛рд╣ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд░ рдФрд░ рд╕рдкреНрддрд╛рд╣ 4 рдХреЗ рдкреНрд▓рд╕ рдкрд░ рдЦрд░реНрдЪ рд╣реБрдПред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ - рд╣рдо рдПрдХ рд╕реАрдЯреАрдИ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕рдореЗрдВ рдХреБрдЫ рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, PostgreSQL рд╕реНрдорд╛рд░реНрдЯ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрдврд╝реЗрдЧрд╛ред рдлрд┐рд░ рд╣рдо рдЗрд╕рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рд░рд┐рдХреЙрд░реНрдб рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕реА CTE рд╕реЗ рдкрд╣рд▓рд╛ рд╕реМ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред



рд╣рдо рдпреЛрдЬрдирд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордЭрддреЗ рд╣реИрдВ - рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдмрдлрд╝рд░реНрд╕ (рдбреЗрдЯрд╛ рдкреГрд╖реНрда) рд╣реИрдВ, рдЬреЛ рд╕реАрдХ рд╕реНрдХреИрди рдореЗрдВ "рднрд╕реНрдо" рдереЗ, рд╕реАрдЯреАрдИ рд╕реНрдХреИрди рдореЗрдВ рдПрдХ рдФрд░, рджреВрд╕рд░реЗ рд╕реАрдЯреАрдИ рд╕реНрдХреИрди рдореЗрдВ 2 рдФрд░ред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдмрд╕ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рд╣реИ, рддреЛ рд╣рдореЗрдВ 6 рдорд┐рд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд▓реЗрдЯ рд╕реЗ рд╣рдо рдХреЗрд╡рд▓ 3 рдкрдврд╝рддреЗ рд╣реИрдВ! рд╕реАрдЯреАрдИ рд╕реНрдХреИрди рдХрд╣реАрдВ рд╕реЗ рднреА рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрдврд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАрдзреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣рд╛рдБ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рдЧрд▓рдд рд╣реИ!

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЙрди рд╕рднреА 3 рдкреГрд╖реНрдареЛрдВ рдХрд╛ рдбреЗрдЯрд╛ рд╣реИ рдЬреЛ Seq рд╕реНрдХреИрди рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкрд╣рд▓реЗ 1 рдиреЗ 1 рд╕реАрдЯреАрдИ рд╕реНрдХреИрди рдХреЗ рд▓рд┐рдП рдХрд╣рд╛, рдФрд░ рдлрд┐рд░ рджреВрд╕рд░рд╛, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдФрд░ 2 рдкрдврд╝рд╛ред рдЕрд░реНрдерд╛рддреН, 3 рдкреГрд╖реНрда рдХреБрд▓ рдореЗрдВ рдкрдврд╝реЗ рдЧрдП рдереЗ рдбреЗрдЯрд╛, 6 рдирд╣реАрдВред



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



рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдБрд╕ рдЫреЛрдбрд╝рддреЗред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛: "рдЕрдм, рдирд╡, рддреБрдо рдХреБрдВрдЧ рдлреВ рдЬрд╛рдирддреЗ рд╣реЛ! рдЕрдм рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡ рдЖрдкрдХреА рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рд╣реА рд╣реИред рдЕрдм рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред тАЭ [рд▓реЗрдЦ]

рд╕рдореЗрдХрди рд▓реЙрдЧ рдХрд░реЗрдВ


рд╣рдорд╛рд░реЗ 1000 рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд░рд╛рд╣рдд рдХреА рд╕рд╛рдВрд╕ рд▓реАред рд▓реЗрдХрд┐рди рд╣рдо рд╕рдордЭ рдЧрдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ "рд▓рдбрд╝рд╛рдИ" рд╕рд░реНрд╡рд░ рд╣реИрдВ, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рд╕рдм "рдХреЙрдкреА-рдкреЗрд╕реНрдЯ" рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕реЗ рдЦреБрдж рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдирд┐рдпрдорд┐рдд рдореЙрдбреНрдпреВрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрд╣ pg_stat_statements рдореЙрдбреНрдпреВрд▓ рд╣реИ ред рд▓реЗрдХрд┐рди рд╡рд╣ рд╣рдореЗрдВ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛ рдерд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдПрдХ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рднреАрддрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдПрдХ рд╣реА рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ QueryId рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ ред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдХрд░рддреЗ рд╣реИрдВ SET search_path = '01'; SELECT * FROM user LIMIT 1;, рдФрд░ рдлрд┐рд░ SET search_path = '02';рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА, рдФрд░ рдореИрдВ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБ рдЬреЛ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдХрдореА ред рдпрд╛рдиреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЕрдиреБрд░реЛрдз рд╣реА рд╣реИред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдзреАрдорд╛ рд╣реЛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддреЗ рдХрд┐ рдХреНрдпреЛрдВред рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рддреЗрдЬреА рд╕реЗ рдмрджрд▓рддреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВред

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



рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ "рдХреЙрдкреА-рдкреЗрд╕реНрдЯ" рд╕реЗ рд▓рдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдХрд▓реЗрдХреНрдЯрд░ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ ред

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

рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Node.js рдкрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЙрд╕ рдкрд░ рдХрд▓реЗрдХреНрдЯрд░ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ред рдФрд░ рдЗрд╕ рддрдХрдиреАрдХ рдиреЗ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЦрд░рд╛рдм рд╕реНрд╡рд░реВрдкрд┐рдд рдкрд╛рда рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЬреЛ рд▓реЙрдЧ рд╣реИред рдФрд░ Node.js рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рд╣реА рдПрдХ рдмреИрдХреЗрдВрдб рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдкрдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдбреЗрдЯрд╛ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рдеред

рддрджрдиреБрд╕рд╛рд░, рд╣рдо рджреЛ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ "рдЦреАрдВрдЪрддреЗ рд╣реИрдВ": рдкрд╣рд▓рд╛ рд╕реНрд╡рдпрдВ рд▓реЙрдЧ рдХреЛ "рд╕реБрдирдиреЗ" рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рд╕рдордп-рд╕рдордп рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкреВрдЫрдирд╛ рд╣реИред "рд▓реЗрдХрд┐рди рд▓реЙрдЧ рдореЗрдВ рдпрд╣ рдЖрдпрд╛ рдХрд┐ рдУрдбреА 123 рдХреЗ рд╕рд╛рде рдкреНрд▓реЗрдЯ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛," рд▓реЗрдХрд┐рди рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИ, рдФрд░ рдЖрдзрд╛рд░ рд╕реЗ рдкреВрдЫрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ "рдЖрдЦрд┐рд░ рдУрдЖрдИрдбреА = 123 рдХреНрдпрд╛ рд╣реИ?" рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдкреВрдЫрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдЕрднреА рддрдХ рдШрд░ рдкрд░ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред



"рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ, рдПрдХ рддрд░рд╣ рдХреА рд╣рд╛рдереА рдЬреИрд╕реА рдордХреНрдЦрд┐рдпрд╛рдБ рд╣реИрдВ! .." рд╣рдордиреЗ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рддрдм рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрдм рд╣рдо 10 рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рд╣рдорд╛рд░реА рд╕рдордЭ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг, рдЬрд┐рд╕ рдкрд░ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ рдЬрд┐рдирд╕реЗ рдирд┐рдкрдЯрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛ред рд▓реЗрдХрд┐рди рдкрд╣рд▓реА рддрд┐рдорд╛рд╣реА рдХреЗ рджреМрд░рд╛рди рд╣рдореЗрдВ рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рд╕реМ рдорд┐рд▓реЗ - рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо "рдЕрдВрджрд░ рдЪрд▓рд╛ рдЧрдпрд╛", рд╣рд░ рдХреЛрдИ рдЗрд╕реЗ рдЪрд╛рд╣рддрд╛ рдерд╛, рд╣рд░ рдХреЛрдИ рдЖрд░рд╛рдорджрд╛рдпрдХ рдерд╛ред

рдпрд╣ рд╕рдм рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдмрдбрд╝реА, рд╕рдХреНрд░рд┐рдп рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдЪреАрдЬ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ - рдлрд┐рд░ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо PostgreSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рддреЗрдЬреА рд╕реЗ рдЗрд╕рдореЗрдВ "рдбрд╛рд▓рдирд╛" рдбреЗрдЯрд╛ COPYрдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рддрдХ рдХреЛрдИ рдСрдкрд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реИред

рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХреЛ рдХреЗрд╡рд▓ "рдбрд╛рд▓рдирд╛" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реА рддрдХрдиреАрдХ рдирд╣реАрдВ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реМ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 50k рдЕрдиреБрд░реЛрдз рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рджрд┐рди 100-150GB рд▓реЙрдЧ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдмреЗрд╕ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ "рджреЗрдЦрд╛" рдерд╛ред

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

рджреВрд╕рд░реЗ, рд╣рдордиреЗ рд╕реАрдЦрд╛ (рдмрд╣реБрдд рдордЬрдмреВрд░ рдереЗ) рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрдирд╛COPY ред рдпрд╛рдиреА рд╕рд┐рд░реНрдл COPYрдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдпрд╣ рддреЗрдЬ рд╣реИ INSERT, рдмрд▓реНрдХрд┐ рдЗрд╕рд╕реЗ рднреА рддреЗрдЬ рд╣реИред



рддреАрд╕рд░рд╛ рдмрд┐рдВрджреБ - рдореБрдЭреЗ рдХреНрд░рдорд╢рдГ, рдФрд░ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ ред рдпрд╣реА рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдВрджрд░реНрднрд╛рддреНрдордХ рдЕрдЦрдВрдбрддрд╛ рдирд╣реАрдВ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдореЗрдЬ рд╣реИ рдЬрд┐рд╕ рдкрд░ FK рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд╣реИ, рдФрд░ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ "рдпрд╣рд╛рдБ рдПрдХ рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ FK рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдПрдХ рд╕рдореВрд╣", рддреЛ рдЬрдм рдЖрдк рдЗрд╕реЗ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ PostgreSQL рдХреЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдХреИрд╕реЗ рд▓реЗ рдФрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ SELECT 1 FROM master_fk1_table WHERE ...рдЙрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдмрд╕ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ, рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдбрд╛рд▓рдиреЗ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдХреЛ "рддреЛрдбрд╝" рдирд╣реАрдВ рд░рд╣реЗ рд╣реИрдВред

рд╣рдореЗрдВ рд▓рдХреНрд╖реНрдп рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдЙрд╕рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдмрдЬрд╛рдп, рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдкрдврд╝рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдкреНрд▓рд╕ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╣ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╣рдореЗрдВ рдЗрд╕рдХреА рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ - рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдХрдо рд╕реЗ рдХрдо рд▓реЛрдб рдХреЗ рд╕рд╛рде рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЬрд▓реНрджреА рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдЬрд▓реНрджреА рд▓рд┐рдЦрдирд╛ рд╣реИред рддреЛ FK - рдиреАрдЪреЗ!

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

рдЕрдм рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд▓реЗрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХреЗрд╡рд▓ рдЙрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╣реЛрд╕реНрдЯ рдкрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:+1, +1, +1, ..., +1ред рдФрд░ рдЖрдк, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рд╕рдм рдХрд▓реЗрдХреНрдЯрд░ рдкрд░ рдореЗрдореЛрд░реА рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рдордп рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ +10ред

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

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

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



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

рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбрд╛рдЯрд╛рд╕реЗрдЯ рд╣реИрдВ, рд╣рдо рдЗрд╕реЗ рдХрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ COPY - рдкрд╣рд▓реЗ рдореЗрдВ рдкрд╣рд▓реЗ, рдлрд┐рд░ рджреВрд╕рд░реЗ рдореЗрдВ, рддреАрд╕рд░реЗ рдореЗрдВ ... рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдПрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рддреАрди рдЪрд░рдгреЛрдВ рдореЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЕрдкреНрд░рд┐рдпред рдХреНрдпрд╛ рдпрд╣ рддреЗрдЬреА рд╕реЗ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рдЕрдиреБрд░реЛрдз, рдЯреЗрдореНрдкрд▓реЗрдЯ, рддрд╛рд▓реЗ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рдЙрдбрд╝ рд░рд╣реЗ рд╣реИрдВ ... - рдФрд░ рд╣рдо рдЗрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ COPY рдЪреИрдирд▓ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓рдХреНрд╖реНрдп рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЦреЛрд▓реЗрдВ ред



рдпрд╛рдиреА рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдПрдХ рдзрд╛рд░рд╛ рд╣реЛрддреА рд╣реИрдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХрд╛ рдбреЗрдЯрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рддрд╛рд▓реЗ рдореЗрдВ рд▓рдЯрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ, COPY рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдмрд╛рдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред рд╣рдорд╛рд░реЗ рд▓рд┐рдП, 100ms рдХреЗ рдЖрджреЗрд╢ рдХреА рдЕрд╡рдзрд┐ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдирд┐рдХрд▓реА - рдХрд░реАрдм рд╕реЗ рдФрд░ рддреБрд░рдВрдд рдЙрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ред рдФрд░ рдЕрдЧрд░ рд╣рдорд╛рд░реА рдХреБрдЫ рдЪреЛрдЯрд┐рдпреЛрдВ рдкрд░ рдПрдХ рдзрд╛рд░рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рддрдХ рдкреВрд▓рд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЛрдб рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рдкреИрдХреЗрдЯ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдХреЛрдИ рднреА рдПрдХрддреНрд░реАрдХрд░рдг рдмреБрд░рд╛рдИ рд╣реИред рд╢рд╛рд╕реНрддреНрд░реАрдп рдмреБрд░рд╛рдИ INSERT ... VALUES1000 рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдкрд░реЗ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕рдордп рдЖрдкрдХреЗ рдкрд╛рд╕ рдореАрдбрд┐рдпрд╛ рдкрд░ рдПрдХ рд╢рд┐рдЦрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╣реИ, рдФрд░ рдмрд╛рдХреА рд╕рднреА рдЬреЛ рдбрд┐рд╕реНрдХ рдкрд░ рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗред

рдРрд╕реА рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдХреБрдЫ рднреА рдПрдХрддреНрд░ рди рдХрд░реЗрдВ, рдмрд┐рд▓реНрдХреБрд▓ рднреА рдмрдлрд░ рди рдХрд░реЗрдВ ред рдФрд░ рдЕрдЧрд░ рдбрд┐рд╕реНрдХ рдореЗрдВ рдмрдлрд░рд┐рдВрдЧ рд╣реЛрддреА рд╣реИ (рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, Node.js рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдПрдкреАрдЖрдИ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ) - рдЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░реЗрдВред рдЬрдм рдпрд╣ рдШрдЯрдирд╛ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдЖрддреА рд╣реИ рдХрд┐ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдореБрдХреНрдд рд╣реИ - рд╕рдВрдЪрд┐рдд рдХрддрд╛рд░ рд╕реЗ рдЗрд╕реЗ рд▓рд┐рдЦреЗрдВред рдЗрд╕ рдмреАрдЪ, рдпрд╣ рд╡реНрдпрд╕реНрдд рд╣реИ - рдкреВрд▓ рд╕реЗ рдЕрдЧрд▓рд╛ рдореБрдлреНрдд рд▓реЗ рд▓реЛ рдФрд░ рдЗрд╕реЗ рд▓рд┐рдЦреЛред

рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ 4K рд▓реЗрдЦрди рдСрдкреНрд╕ рдереЗ, рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдордиреЗ рд▓реЛрдб рдХреЛ 4 рдЧреБрдирд╛ рдХрдо рдХрд░ рджрд┐рдпрд╛ред рдЕрдм рд╡реЗ рдирдП рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдп рдард┐рдХрд╛рдиреЛрдВ рдХреЗ рдХрд╛рд░рдг 6 рдЧреБрдирд╛ рдмрдврд╝ рдЧрдП рд╣реИрдВ - 100 рдПрдордмреА / рдПрд╕ рддрдХред рдФрд░ рдЕрдм рд╣рдо рдкрд┐рдЫрд▓реЗ 3 рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 10-15TB рдХреА рд░рд╛рд╢рд┐ рдореЗрдВ рд▓реЙрдЧ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ рддреАрди рдорд╣реАрдиреЛрдВ рдореЗрдВ рдХреЛрдИ рднреА рдбреЗрд╡рд▓рдкрд░ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╣рдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ


рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛, рдЙрдкрдпреЛрдЧреА, рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ - рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рддрд┐ рджрд┐рди рд▓рд╛рдЦреЛрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред



рд▓реЗрдХрд┐рди рд▓рд╛рдЦреЛрдВ рд▓реЛрдЧ рдмреЗрдХрд╛рдмреВ рд╣реИрдВ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ "рдХрдо" рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рддрдп рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ "рдЫреЛрдЯреЗ" рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВрдЧреЗред

рд╣рдордиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рддреАрди рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБрдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреА рд╣реИ:

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

рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ "рдХрд┐рд╕рдиреЗ" рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рд╣реИ, рд╣рдо рдПрдХ рдирд┐рдпрдорд┐рдд рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдПрдХ рд╕рддреНрд░ рдЪрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛: SET application_name = '{bl-host}:{bl-method}';- рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХрд╛ рдореЗрдЬрдмрд╛рди рдирд╛рдо рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдзрд┐ рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдирд╛рдо рднреЗрдЬреЗрдВред

рдЕрдиреБрд░реЛрдз рдХреЗ "рд╕реНрд╡рд╛рдореА" рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рд▓реЙрдЧ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЪрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ log_line_prefix = ' %m [%p:%v] [%d] %r %a'ред рдХреЛрдИ рднреА рдЗрдЪреНрдЫреБрдХ рд╡реНрдпрдХреНрддрд┐ рдореИрдиреБрдЕрд▓ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдХреНрдпрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдо рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ:

  • рд╕рдордп
  • рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рд▓реЗрди-рджреЗрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛
  • рдЖрдзрд╛рд░ рдирд╛рдо
  • рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЖрдИ.рдкреА.
  • рдФрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо



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

рддреЛ, "рдПрдХ рд╕рд░реНрд╡рд░ - рдПрдХ рджрд┐рди" рдЕрдиреБрднрд╛рдЧ рдХрд┐рд╕реА рднреА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд┐рдХрд▓рд╛ред

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

рдЬрдм рд╣рдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЪрд▓реЗ рдЧрдП, рддреЛ рд╣рдореЗрдВ рддреБрд░рдВрдд рджреЛ рдлрд╛рдпрджреЗ рд╣реБрдП:


  • , .

  • , ┬л┬╗ - , . , - , , , тАФ , , тАФ , , . , , .




рд╢реЗрд╖ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЙрди рд╕рдВрдХреЗрддрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдпреЛрдЬрдирд╛ рд╕реЗ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ: рдХрд┐рддрдиреА рдмрд╛рд░ рдРрд╕рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реБрдЖ, рдХреБрд▓ рдФрд░ рдФрд╕рдд рд╕рдордп, рдбрд┐рд╕реНрдХ рд╕реЗ рдХрд┐рддрдирд╛ рдбреЗрдЯрд╛ рдкрдврд╝рд╛ рдЧрдпрд╛, рдФрд░ рдореЗрдореЛрд░реА рд╕реЗ рдХрд┐рддрдирд╛ ...

рдХреНрдпреЛрдВрдХрд┐ рдЖрдк, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдкреЗрдЬ рдкрд░ рдЖрддреЗ рд╣реИрдВ, рджреЗрдЦреЗрдВ - рд╢реБрд░реБрдЖрдд рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХред рд╕рд░реНрд╡рд░ рдкрд░ рдбрд┐рд╕реНрдХ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдФрд░ рдЗрд╕рд╕реЗ рдХреМрди рдкрдврд╝рддрд╛ рд╣реИ?

рдФрд░ рдЖрдк рдХрд┐рд╕реА рднреА рдХреЙрд▓рдо рдХреЛ рдЫрд╛рдВрдЯ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рддрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрднреА рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ - рдкреНрд░реЛрд╕реЗрд╕рд░ рдпрд╛ рдбрд┐рд╕реНрдХ рдкрд░ рд▓реЛрдб рдХреЗ рд╕рд╛рде, рдпрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде ... рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛, "рд╢реАрд░реНрд╖", рдорд░рдореНрдордд рдХрд┐рдпрд╛ рд╣реБрдЖ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рджреЗрдЦрд╛ред
[рд╡реАрдбрд┐рдпреЛ рд╡реНрдпрд╛рдЦреНрдпрд╛рди]

рдФрд░ рддреБрд░рдВрдд рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рд╕реЗ рд╕рдорд╛рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВSELECT * FROM users WHERE login = 'Vasya'ред рдлрд╝реНрд░рдВрдЯреЗрдВрдб, рдмреИрдХрдПрдВрдб, рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ ... рдФрд░ рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдХреНрдпреЛрдВ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рд╕реЗ рддреБрд░рдВрдд рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рджреГрд╢реНрдпрдкрдЯрд▓ рдпрд╣ рд╣реИ, рдпрд╣, рдпрд╣ рдФрд░ рдпрд╣ рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ (рдмрд╕ рд╕рдордпрд░реЗрдЦрд╛ рдорджрдж рдХрд░рддрд╛ рд╣реИ)ред рдФрд░ рддреБрд░рдВрдд рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ - рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдШрдВрдЯреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдирд╣реАрдВ рд╣реИ ...



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

рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд▓реЗрдЯ рдкрд░ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЗрдВрдбреЗрдХреНрд╕ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдКрдкрд░ рдЙрдбрд╝рддрд╛ рд╣реИ, Seq рд╕реНрдХреИрди рдореЗрдВ рдЧрд┐рд░рддрд╛ рд╣реИ ... рдЖрдкрдиреЗ рдПрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд░рд┐рдХреЙрд░реНрдбреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдЖрдкрдХреЛ рдкреНрд░рддрд┐ рджрд┐рди 100M рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЧрдП рд░рд┐рдХреЙрд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдХреНрдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд░реЛрд▓ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ?



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

рдЗрд╕ рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рдкреНрд░рд╢реНрди рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╣рд░ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╢рд╛рдпрдж рдкрддрд╛ рдЪрд▓рд╛: "рдореБрдЭреЗ рд╡рд╛рд╕реНрдпрд╛, рдЙрд╕рдХреА рддрд┐рдерд┐ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдЖрджреЗрд╢ рджреЗрдВ" рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рддрд╛рд░реАрдЦ рддрдХ рдХреЛрдИ рд╕реВрдЪрдХрд╛рдВрдХ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рддрд╛рд░реАрдЦ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ "рд░реЗрдХ" рдФрд░ рдЪрд░рдг рдкрд░ рдЬрд╛рдПрдВ ред

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

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрднрд╡ рдХреА рдорд╛рддреНрд░рд╛ рдФрд░ рдЕрдм рдХрд╛рдлреА рдЧрд┐рд░ рдЧрдИ рд╣реИред рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдРрд╕рд╛ рдЙрдкрдХрд░рдг рд╣реИред

Source: https://habr.com/ru/post/undefined/


All Articles