
рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдореЗрд░рд╛ рдирд╛рдо рдореИрдХреНрд╕рд┐рдо рд░рд╛рдЗрдВрдбрд┐рди рд╣реИ, рдореИрдВ рдЧреЗрдЯ-рдмрд┐рд▓рд┐рдВрдЧ рдФрд░ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдореЗрдВ рджреЛ рдЯреАрдореЛрдВ рдХрд╛ рдЯреАрдо рд▓реАрдб рд╣реВрдВред рдореИрдВ рдЙрддреНрдкрд╛рдж рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдЧреЗрдЯ рдкрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЧреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ 2015-2017 рдореЗрдВ рд╣рдордиреЗ рдЗрд╕ рднрд╛рд╖рд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛, рд╣рдордиреЗ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдХреНрдпреЛрдВ рдЪреБрдирд╛, рд╕рдВрдХреНрд░рдордг рдХреЗ рджреМрд░рд╛рди рд╣рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖрдИрдВ рдФрд░ рд╣рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ: рдЧреЗрдЯреНрдЯ рдПрдХ рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдп рдЯреИрдХреНрд╕реА рд╕реЗрд╡рд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╕реНрдерд╛рдкрдирд╛ 2011 рдореЗрдВ рдЗрдЬрд╝рд░рд╛рдЗрд▓ рдореЗрдВ рд╣реБрдИ рдереАред рдЧреЗрдЯреНрдЯ рдЕрдм 4 рджреЗрд╢реЛрдВ рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ: рдЗрдЬрд╝рд░рд╛рдЗрд▓, рдЧреНрд░реЗрдЯ рдмреНрд░рд┐рдЯреЗрди, рд░реВрд╕ рдФрд░ рдпреВрдПрд╕рдПред рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХреЗ рдореБрдЦреНрдп рдЙрддреНрдкрд╛рдж рдЧреНрд░рд╛рд╣рдХреЛрдВ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИрдВ, рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдкреЛрд░реНрдЯрд▓ рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рдХрд╛рд░ рдСрд░реНрдбрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдВрддрд░рд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд╛рд░реЗ рдХрд░реНрдордЪрд╛рд░реА рдЯреИрд░рд┐рдл рдкреНрд▓рд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдирдП рдбреНрд░рд╛рдЗрд╡рд░ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдзреЛрдЦрд╛рдзрдбрд╝реА рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред 2016 рдХреЗ рдЕрдВрдд рдореЗрдВ, рдореЙрд╕реНрдХреЛ рдореЗрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЖрд░ рдПрдВрдб рдбреА рдХрд╛рд░реНрдпрд╛рд▓рдп рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдкреВрд░реА рдХрдВрдкрдиреА рдХреЗ рд╣рд┐рддреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдХреИрд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛
2011 рдореЗрдВ, рдХрдВрдкрдиреА рдХрд╛ рдореБрдЦреНрдп рдЙрддреНрдкрд╛рдж рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдкрд░ рдПрдХ рдЕрдЦрдВрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рд╕рдордп рдпрд╣ рд░реВрдкрд░реЗрдЦрд╛ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдереАред рд░реВрдмреА рдкрд░ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рд╡реНрдпрд╡рд╕рд╛рдпреЛрдВ рдХреЗ рд╕рдлрд▓ рдЙрджрд╛рд╣рд░рдг рдереЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рдерд╛ред рдХрдВрдкрдиреА рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рдереА, рдирдП рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдП, рднрд╛рд░ рдмрдврд╝рддрд╛ рдЧрдпрд╛ред рдФрд░ рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд▓рдЧреАрдВред
рдХрд╛рд░ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, рдФрд░ рддрд╛рдХрд┐ рдЗрд╕рдХреА рдЧрддрд┐ рдПрдХ рдЪрд┐рдХрдиреА рд╡рдХреНрд░ рдХреА рддрд░рд╣ рджрд┐рдЦреЗ, рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рднреЗрдЬрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рднрд░рд╛ рд╣реБрдЖ рдерд╛ред рдФрд░ рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдореЗрдВ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдиреЗ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдмреБрд░рд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред рдирдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛, рдЬреЛ рдорд╣рдВрдЧрд╛ рдФрд░ рдЕрдХреНрд╖рдо рд╣реИ, рдХреЗрд╡рд▓ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдордиреЗ рдПрдХ рдЕрд▓рдЧ рд╕реЗрд╡рд╛ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рдВрдЧреНрд░рд╣ рдирд┐рдХрд╛рд▓рд╛, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЬреЗрдПрд╕ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП, рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд▓реЛрдб рдмрдврд╝рддрд╛ рдЧрдпрд╛, рдЬрдм рд╣рдо 80 рд╣рдЬрд╛рд░ RPM рддрдХ рдкрд╣реБрдБрдЪ рдЧрдП, Node.js рдкрд░ рд╕реЗрд╡рд╛ рдиреЗ рд╣рдореЗрдВ рдмрдЪрд╛рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред
рдлрд┐рд░ рд╣рдордиреЗ рдПрдХ рд╣реИрдХрдереЙрди рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ред рдХрдВрдкрдиреА рдХреЗ рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдПрдХ рджрд┐рди рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛, рдЬреЛ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдерд╛ред рдпрд╣рд╛рдБ рдЙрд╕ рд╕реЗрд╡рд╛ рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдорд╛рдирджрдВрдб рд╣реИрдВ: рдареЗрд╕ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЧреЛ рдкрд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рд▓рдЧрднрдЧ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЧреЛ рдкрд░ рд╕реЗрд╡рд╛ рдиреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдПред Node.js рдкрд░ рд╕реЗрд╡рд╛ рдиреЗ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдпрд╣ рдПрдХ рдорд╢реАрди рдХреЗ рд╕рднреА рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдХрдиреАрдХ рд╣реИред рдЕрд░реНрдерд╛рддреН, рдкреНрд░рдпреЛрдЧ рдПрдХ рдкреНрд▓рд╕ рдпрд╛ рдорд╛рдЗрдирд╕ рдИрдорд╛рдирджрд╛рд░ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, Node.js рдХреЛ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд░рдирдЯрд╛рдЗрдо рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред
рдзреАрд░реЗ-рдзреАрд░реЗ, рд╣рдорд╛рд░реЗ рдЙрддреНрдкрд╛рдж рдХреА рдорд╛рдВрдЧ рдмрдврд╝реАред рд╣рдордиреЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рд╣реИ, рдФрд░ рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ: рдЬрдм рдЖрдк рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдХреБрдЫ рдХреЛрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рджреВрд╕рд░реА рдЬрдЧрд╣ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреГрдврд╝рддрд╛ рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИред рд╣рдордиреЗ рд╕реЗрд╡рд╛-рдЙрдиреНрдореБрдЦ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдХреЗ рдЗрд╕ рд╕рдВрдХрдЯ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рджрд░реНрд╢рди рдмрд┐рдЧрдбрд╝ рдЧрдпрд╛: рдЬрдм рдХреЛрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╣реЛрдиреЗ рдкрд░ рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ I / O рдСрдкрд░реЗрд╢рди рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдП рд╣реИрдВред
рдирддреАрдЬрддрди, рд╣рдордиреЗ рдЧреЛ рдХреЛ рдореБрдЦреНрдп рд╡рд┐рдХрд╛рд╕ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╣рдорд╛рд░реЗ рдЙрддреНрдкрд╛рдж рд╡рд┐рдХрд╛рд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдмрд╣реБрдд рдЕрд▓рдЧ рдЙрддреНрдкрд╛рдж рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реА рдХрд╛рд░реЗрдВ рддреАрди рджреЗрд╢реЛрдВ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд╛рдиреВрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╕реЗрдЯреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдЬрд╝рд░рд╛рдЗрд▓ рдореЗрдВ, рдпрд╣ рд╡рд┐рдзрд╛рдпреА рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдПрдХ рдпрд╛рддреНрд░рд╛ рдХреА рд▓рд╛рдЧрдд рдХреЛ рдПрдХ рдХрд░ рдкрд░рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдорд╛рдирд╛ рдЬрд╛рдП - рдпрд╣ рдПрдХ рдРрд╕рд╛ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рд╣рд░ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЪрд╛рд▓рдХ рдпрд╛рддреНрд░рд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ "рдЧреЛ" рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рд╡рд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ "рд╕реНрдЯреЙрдк" рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЯреИрдХреНрд╕рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдП рдЧрдП рдореВрд▓реНрдп рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред
рд░реВрд╕ рдореЗрдВ рдРрд╕реЗ рд╕рдЦреНрдд рдХрд╛рдиреВрди рдирд╣реАрдВ рд╣реИрдВред рдпрд╣рд╛рдВ рд╣рдо рдореВрд▓реНрдп рдиреАрддрд┐ рдХреЛ рд╕реНрд╡рдпрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдпрд╛рддреНрд░рд╛ рдХреА рдЕрд╡рдзрд┐ рдпрд╛ рджреВрд░реА рддрдХ рдмрд╛рдБрдз рд▓реЗрдВред рдХрднреА-рдХрднреА, рдЬрдм рд╣рдо рдЙрд╕реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкрд╣рд▓реЗ рдЗрд╕реЗ рдПрдХ рджреЗрд╢ рдореЗрдВ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдиреНрдп рджреЗрд╢реЛрдВ рдореЗрдВ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдЙрддреНрдкрд╛рдж рдкреНрд░рдмрдВрдзрдХреЛрдВ рдиреЗ рдЙрддреНрдкрд╛рдж рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдкрд░ рдЕрдкрдиреА рдЫрд╛рдк рдЫреЛрдбрд╝рддрд╛ рд╣реИ: рд╣рдо рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдиреЗ рд╡рд╛рд▓реА рдЙрддреНрдкрд╛рдж рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реИред
рд╣рдо рдХреБрдЫ рдХрд╛рдо рдХреЗ рджреЛрд╣рд░рд╛рд╡ рд╕реЗ рднреА рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдРрд╕реА рд╕реЗрд╡рд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдПрдХ рджреВрд╕рд░реА рд╕реЗрд╡рд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЬреЛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╣рд▓ рдХреА рдЧрдИ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╣рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдкреБрди: рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдкреНрд░рднрд╛рд╡реА рд╣реЛрдЧрд╛ред
рд╣рдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВ
рдврд╛рдВрдЪрд╛
рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдХреЛ MVC рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рдордп, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЫреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ рдЬреЛ рдХреЗрд╡рд▓ рдЗрд╕ рдврд╛рдВрдЪреЗ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрдХрд░рдг рдмрджрд▓рдиреЗ рд╕реЗ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рдЖрд░рд╛рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рднреА рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЙрд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдирд╛рд╡ рд╕реЗ рддреИрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рд╣рдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЙрд╕ рд╕рдордп рдХреЗ рдХреБрдЫ рдПрдорд╡реАрд╕реА рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕реЗ рдПрдХ рд▓рд┐рдпрд╛, рдЬрд┐рд╕реЗ
рдмреАрдЧреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдордиреЗ рдмреАрдЧреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреИрд╕реЗ рдХрд┐ рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдореЗрдВ, рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреГрд╖реНрда рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдореЗрдВ рдЦреБрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдореБрдЭреЗ рдПрдХ рдШрдЯрдХ рдХреЛ рдлреЗрдВрдХрдирд╛ рдкрдбрд╝рд╛, рдФрд░ рдЖрдЬ рдмреАрдЧреЛ рдмреИрдХреЗрдВрдб рд╕реЗ рдХреЗрд╡рд▓ JSON рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рд░реЗрдВрдбрд░ рд╕рд╛рдордиреЗ рдХреА рддрд░рдл рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмреАрдЧреЛ рдЖрдкрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдерд╛ред рдЬрдм рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдиреЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд╡рд┐рдзрд╛ рд▓рд╛рдЧреВ рдХреА, рдФрд░ рдХреЗрд╡рд▓ рдХреЛрдб рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЧрд▓рддреА рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдЧреЛ-рдмрд┐рд▓реНрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдХрд╛рд░реНрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдж рд╣реИред
рдмреАрдЧреЛ рдореЗрдВ, рдПрдХ рд░рд╛рдЙрдЯрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЗрд╡рд▓рдкрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рд▓рд┐рдЦрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдПрдХ рдЯрд╛рдЗрдкреЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд╛рдЙрдЯрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдЬреЛ рдЧрд▓рддреА рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдкрд░рд┐рд╖реНрдХреГрдд рдирд╣реАрдВ рд╣реИрдВред рд▓реЛрдЧ, рдХрдИ рдмрд╛рд░, рд░реЛрдорд╛рдВрдЪрдХ рдбрд┐рдмрдЧ рдХреЗ рдХрдИ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж рднреА рдХрд╛рд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХреЗред
рдбреЗрдЯрд╛рдмреЗрд╕
рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ PostgreSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрднреНрдпрд╛рд╕ рд╣реИ - рдЖрд╡реЗрджрди рдХреЛрдб рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ: рд╣рд░ рдХреЛрдИ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИ; рд╡реЗ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╣рдореЗрд╢рд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рд╣рдо рднреА рдЗрди рдмрдиреНрд╕ рдХреЛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред
рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдФрд░ рдЯреАрдореЗрдВ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдХрднреА-рдХрднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдХреЙрд▓рдо рдЬреЛрдбрд╝рдирд╛ рдмрд╣реБрдд рд╣реА рд▓реБрднрд╛рд╡рдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 10 рдорд┐рд▓рд┐рдпрди рд░рд┐рдХреЙрд░реНрдб рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдбреВрдмрд╛ рдирд╣реАрдВ рд╣реИ, рд╡рд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЦрддрд░рдирд╛рдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХреА рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╕рд╛рдзрди рджрд┐рдпрд╛ред
рдкреНрд░рд╡рд╛рд╕
рд╣рдордиреЗ
рд╣рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдкрд▓рд╛рдпрди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдПрдХ
рдзрдорд╛рдХреЗрджрд╛рд░ рд╣рдВрд╕ рд╣реИ , рдЬрд┐рд╕рдореЗрдВ рд╣рдордиреЗ рдХреБрдЫ рд╕реБрдзрд╛рд░ рдХрд┐рдП рд╣реИрдВред рдХрдИ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЯреВрд▓ рдХреА рддрд░рд╣ рдпреЗ рджреЛрдиреЛрдВ рдПрдХ рд▓реЗрди-рджреЗрди рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рд╕рдХреЗрдВред рдХрднреА-рдХрднреА рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рд▓реЙрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИред PostgreSQL рдХрд╛ рдПрдХ
concurrently
рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдЗрд╕рд╕реЗ рдмрдЪрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ PostgreSQL рдореЗрдВ рдЖрдк рдЗрд╕
concurrently
рдкрд░ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ
concurrently
, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд▓реЗрдирджреЗрди рдореЗрдВ рднреА рддреНрд░реБрдЯрд┐ рд╕рд╛рдордиреЗ рдЖрдПрдЧреАред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рдПрдХ рдзреНрд╡рдЬ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рддрд╛рдХрд┐ рд▓реЗрдирджреЗрди рди рдЦреЛрд▓реЗрдВред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛:
COMMIT; CREATE INDEX CONCURRENTLY huge_index ON huge_table (column_one, column_two); BEGIN;
рдЕрдм, рдЬрдм рдХреЛрдИ
concurrently
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдпрд╣ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
commit
рдФрд░
begin
рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдХреЛрдб рдЙрд╕ рд▓реЗрди-рджреЗрди рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЯреВрд▓ рдиреЗ рдЦреЛрд▓рд╛ рд╣реИ, рдлрд┐рд░ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ
concurrently
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд░реЛрд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рдФрд░ рдЯреНрд░рд╛рдВрдЬрд╝реИрдХреНрд╢рди рдЦреЛрд▓рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЯреВрд▓ рдХреБрдЫ рдмрдВрдж рд╣реЛ рдЬрд╛рдПред
рдкрд░реАрдХреНрд╖рдг
рд╣рдо рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдЧреЛ рдореЗрдВ, рдпрд╣
рдЬрд┐рдиреНрдХрдЧреЛ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ BDD, "рд╡рд░реНрдгрди", "рдЬрдм" рдФрд░ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХреАрд╡рд░реНрдб рд╣реИрдВ, рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рдЙрддреНрдкрд╛рдж рдкреНрд░рдмрдВрдзрдХ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд рдкрд╛рда рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдкрд╛рда рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдПрдХ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдП: рд░реЗрд▓ рдкрд░ рд░реВрдмреА рдХреА рджреБрдирд┐рдпрд╛ рд╕реЗ рдЖрдП рд▓реЛрдЧреЛрдВ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреА рд▓рдбрд╝рдХреА рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рд╣реИ - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░рдЦрд╛рдирд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЧреЛ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рдерд╛ред рдЕрдВрдд рдореЗрдВ, рд╣рдордиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдПрдВрдЧреЗ: рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ, рд╣реБрдХ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХреЛрдИ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рди рд╣реЛред
рдирд┐рдЧрд░рд╛рдиреА
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрддреНрдкрд╛рджрди рд╕реЗрд╡рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд▓реЛрдЧ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдХрд╛рдо рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдХреНрдпрд╛ рдкрд╛рдВрдЪ рд╕реМ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ рдпрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдиреНрдпреВрд░реЗрд▓рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рджрд┐рдпрд╛ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдордЭрд╛ рдХрд┐ рдЙрдкрдХрд░рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред NewRelic рдЖрдкрдХреЛ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдзреАрдореА рдмрд╛рд╣рд░реА рдХреЙрд▓ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ, рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ, рдмреБрджреНрдзрд┐рдорд╛рди рддреНрд░реБрдЯрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдЕрд▓рд░реНрдЯ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
NewRelic рдореЗрдВ Apdex рд╕рдореБрдЪреНрдЪрдп рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬреЛ рдЙрддреНрддрд░ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдФрд░ рдХреБрдЫ рдорд╛рдиреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ рдФрд░ рдЬреЛ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реЗрдЯ рд╣реИрдВред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЖрд╡реЗрджрди рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕реНрддрд░ рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред NewRelic Apdex рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдХреБрдЫ рд╕реНрддрд░ рд╕реЗ рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред
NewRelic рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреЛ рдПрдЬреЗрдВрдЯ рд╣реЛрдиреЗ рдореЗрдВ рднреА рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдЧрд░рд╛рдиреА рдЕрд╡рд▓реЛрдХрди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рдмрд╛рдИрдВ рдУрд░ рдПрдХ рдХреНрд╡реЗрд░реА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЖрд░реЗрдЦ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЦрдВрдбреЛрдВ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдкрдВрдХреНрддрд┐рдмрджреНрдз рдХрд░рдирд╛, рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ, рд░реЗрд▓реНрд╕ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдкрд░ рд░реВрдмреА рдореЗрдВ рд░рд╣рдиреЗ рдХреА рдЕрд╡рдзрд┐ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддрдХ рдкрд╣реБрдВрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИред
Apdex рдЪрд╛рд░реНрдЯ рд╢реАрд░реНрд╖ рджрд╛рдИрдВ рдУрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд╛рдИрдВ рдУрд░ - рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ред
рд╕рд╛рдЬрд╝рд┐рд╢ рдпрд╣ рд╣реИ рдХрд┐ рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдореЗрдВ рдиреНрдпреВрд░реЗрд▓рд┐рдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЕрдкрдиреА рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рд╕рдм рдХреБрдЫ рдЬрд╛рджреБрдИ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдореЗрдВ рдмрдВрджрд░ рдкреИрдЪрд┐рдВрдЧ рд╣реИ, рдЬреЛ рдЧреЛ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдирд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЕрд╡рдзрд┐ рдХреЛ рдорд╛рдкрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдпрд╣ рдмреАрдЧреЛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
beego.InsertFilter("*", beego.BeforeRouter, StartTransaction, false) beego.InsertFilter("*", beego.AfterExec, NameTransaction, false) beego.InsertFilter("*", beego.FinishRouter, EndTransaction, false)
рдХреЗрд╡рд▓ рдЧреИрд░-рддреБрдЪреНрдЫ рдмрд┐рдВрджреБ рдпрд╣ рдерд╛ рдХрд┐ рд╣рдордиреЗ рд▓реЗрдирджреЗрди рдХреЗ рдЙрджреНрдШрд╛рдЯрди рдФрд░ рдЗрд╕рдХреЗ рдирд╛рдордХрд░рдг рдХреЛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ред рд╣рдордиреЗ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛? рдореИрдВ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рд╕рдордп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЕрд╡рдзрд┐ рдХреЛ рдорд╛рдкрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЙрд╕реА рд╕рдордп, рд╣рдореЗрдВ рдЙрди рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░рд┐рдд рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдЖрдП рдереЗред рд▓реЗрдХрд┐рди рд▓реЗрди-рджреЗрди рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд╕рдордп, рд╣рдордиреЗ рдЕрднреА рддрдХ рдПрдХ URL рдкреИрдЯрд░реНрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдореИрдЪ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдЖрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рд▓реЗрдирджреЗрди рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣реБрдХ рдкрд░, рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдирд╛рдо рджреЗрдВ, рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдмрдВрдж рдХрд░реЗрдВред рдЗрд╕рд▓рд┐рдП, рдЖрдЬ рд╣рдорд╛рд░реА рд░рд┐рдкреЛрд░реНрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

рд╣рдордиреЗ GORM рдирд╛рдордХ рдПрдХ ORM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрдореВрд░реНрдд рдХреЛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╢реБрджреНрдз SQL рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░рддреЗ рдереЗред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рджреЛрдиреЛрдВ рд╣реИрдВред рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдПрдХ рдУрдЖрд░рдПрдо рд╕рдХреНрд░рд┐рдп рд░рд┐рдХреЙрд░реНрдб рд╣реИ рдЬрд┐рд╕рдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╢реБрджреНрдз SQL рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ ORM рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
db.Callback().Create().Before("gorm:begin_transaction"). Register("newrelicStart", startSegment) db.Callback().Create().After("gorm:commit_or_rollback_transaction"). Register("newrelicStop", endSegment)
GORM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрд╡рдзрд┐ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
db
рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХреЙрд▓рдмреИрдХ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреЙрд▓рдмреИрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдирдИ рдЗрдХрд╛рдИ рдмрдирд╛рддреЗ рд╕рдордп рдЗрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП -
Create
рдХрд░рдиреЗ рдХреЗ
Create
рдПрдХ рдХреЙрд▓ред рддрдм рд╣рдо рдареАрдХ рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЙрд▓рдмреИрдХ рдХрдм рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПред
Before
рдпрд╣
begin_transaction
рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛ:
begin_transaction
рд▓реЗрди-рджреЗрди рдХреЗ рдЦреБрд▓рдиреЗ рдХреЗ рд╕рдордп рдХреБрдЫ рдмрд┐рдВрджреБ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж,
newrelicStart
рдирд╛рдо рдХреЗ рд╕рд╛рде
newrelicStart
startSegment
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдмрд╕ рдЧреЛ рдПрдЬреЗрдВрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕реЗрдЧрдореЗрдВрдЯ рдЦреЛрд▓рддрд╛ рд╣реИред
рд▓реЗрдирджреЗрди рдХреЛ рдЦреЛрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ ORM рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛, рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЛ рдЦреЛрд▓реЗрдЧрд╛ред рд╣рдореЗрдВ рдЦрдВрдб рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд╣реА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рдмрд╕ рдХреЙрд▓рдмреИрдХ рдХреЛ рд▓рдЯрдХрд╛рдПрдВред
PostgreSQL рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо Redis рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЪрд┐рдХрдирд╛ рднреА рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рдорд╛рдирдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдКрдкрд░ рдПрдХ рдЖрд╡рд░рдг рд▓рд┐рдЦрд╛, рдФрд░ рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реБрдЖ:

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

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