рдорд╛рд░рд┐рдпрд╛рдбреАрдмреА рдФрд░ рд╕реНрдлрд┐рдВрдХреНрд╕ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреА рдмрд╛рдЗрдХ


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


рдореИрдВ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реА рдЦреЛрдЬ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реБрдИ рдФрд░ рд╣рдордиреЗ рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ред


рд╣рдорд╛рд░реА рдЦреЛрдЬ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдирдХ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдпреЛрдЬрд┐рдд рдХреА рдЧрдИ рдереАред


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


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


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


рдпрд╣ рд╕рдм рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред


  1. рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмреАрдЪ рдФрд╕рдд рджреЗрд░реА (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдпрд╛ рд░рд┐рдХреНрддрд┐ рд╣реИ) рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдЗрд╕рдХрд╛ рдкреНрд░рд╡реЗрд╢ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЖрдиреБрдкрд╛рддрд┐рдХ рдерд╛ред
  2. рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЕрдкрдбреЗрдЯ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рддрд░рд┐рдд рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рдереА рдХрд┐ рдпреЗ рдЕрдкрдбреЗрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдХреА рд╕рднреА рдкреНрд░рддрд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдереЗред
  3. рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ "рддрддреНрдХрд╛рд▓" рдкрд░рд┐рд╡рд░реНрддрди рддрдм рдЦреЛ рдЧрдП рдереЗ рдЬрдм RELOAD INDEX рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╡реЗ рдЕрднреА рддрдХ рдирд╡рдирд┐рд░реНрдорд┐рдд рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдирд╣реАрдВ рдереЗ), рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд▓реЗ рд░реАрдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдорд┐рд▓рд╛ред
  4. рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрдирдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдирд╣реАрдВ рдерд╛ред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рд╡рд┐рднрд┐рдиреНрди рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА рдХрдИ рдорд┐рдирдЯреЛрдВ рддрдХ рд╣реЛ рд╕рдХрддреА рд╣реИред
  5. рдпрджрд┐ рдЦреЛрдЬ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ рд╕реЗ рдЦреЛрдЬ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдХрд╛рд░реНрдбрд┐рдирд▓ рд░реАрдХреНрд░рд┐рдПрд╢рди рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рд╕рд╛рде рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬреАрд╡рди рдХреЛ рдХрд╛рдлреА рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ред


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


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


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


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


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

рд╣рдордиреЗ рдЧреЛ-рдорд╛рдЗрд╕реНрдХрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдпрд╛ред рд╡рд╣ MariaDB рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ, рдкреНрд░рддрд┐рдХреГрддрд┐ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдкрд╛рд╕ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрд╣ рд╣реИрдВрдбрд▓рд░ рдЧреЛрд░реЛрдЗрди рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╣реИрдВрдбрд▓рд░ рдХреЛрдб рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рд╣реИрдВрдбрд▓рд░ рдХреЛрдб рдореЗрдВ, рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реА рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд╣реИрдВрдбрд▓рд░ рд▓реЗрди-рджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рдШрдЯрдирд╛рдПрдВ рдХреНрд░рдо рдореЗрдВ рд╣реИрдВ: рдЬреАрдЯреАрдЖрдИрдбреА тАЛтАЛ(рд▓реЗрдирджреЗрди рдХреА рд╢реБрд░реБрдЖрдд) -> рдЖрд░рдУрдбрдмреНрд▓реНрдпреВ (рдбреЗрдЯрд╛ рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди) -> рдПрдХреНрд╕рдЖрдИрдбреА (рд▓реЗрдирджреЗрди рдХрд╛ рдЕрдВрдд), рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рд▓реЗрдирджреЗрди рдирдВрдмрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рд▓реЗрди-рджреЗрди рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдХ рд╕рд╛рде рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдпрд╣ рднреА рдЬрд╛рдирдХрд╛рд░реА рджреА рдЬрд╛рдП рдХрд┐ рдмрд┐рдирд▓реЙрдЧ рдореЗрдВ рдХрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рдмреАрдЪ рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред


 MySQL [(none)]> describe sync_state; +-----------------+--------+ | Field | Type | +-----------------+--------+ | id | bigint | | dummy_field | field | | binlog_position | uint | | binlog_name | string | | gtid | string | | flavor | string | +-----------------+--------+ 

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


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


 [[ingest]] table = "vacancy" id_field = "id" index = "vacancy" [ingest.column_map] user_id = ["user_id"] edited_at = ["date_edited"] profession = ["profession"] latitude = ["latitude_deg", "latitude_rad"] longitude = ["longitude_deg", "longitude_rad"] [[ingest]] table = "vacancy_language" id_field = "vacancy_id" index = "vacancy" [ingest.column_map] language_id = ["languages"] level = ["languages"] [[ingest]] table = "vacancy_metro_station" id_field = "vacancy_id" index = "vacancy" [ingest.column_map] metro_station_id = ["metro"] 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдореЛрдВ рдХреЗ рдЗрд╕ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде, vacancy , vacancy_language рдФрд░ vacancy_metro_station рдкрд░рд┐рд╡рд░реНрддрди vacancy рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдВрдЦреНрдпрд╛ рдХреЛ vacancy рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП id рдлрд╝реАрд▓реНрдб рдореЗрдВ, рдФрд░ рдЕрдиреНрдп рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП vacancy_id id рдлрд╝реАрд▓реНрдб рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред column_map рдлрд╝реАрд▓реНрдб рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╣рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рд╣реБрдИ, рддреЛ рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рддреБрд░рдВрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдереЛрдбрд╝реЗ рд╕рдордп рдХреЗ рдкрд╛рд╕ (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 100 рдорд┐рд▓реАрд╕реЗрдХрдВрдб) рд╣реЛрддреЗ рд╣реА рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рднреЗрдЬрддреЗ рд╣реИрдВред


рд╣рдордиреЗ рдХрдИ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдЕрдкрдбреЗрдЯ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдПрдХ рдПрдХрд▓ рддрд╛рд░реНрдХрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрдИ SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдорджрдж рд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХрднреА-рдХрднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд▓реЗрдирджреЗрди рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред


рдореИрдВ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдПрдХ рд░рд┐рдХреНрддрд┐ рд╕рдВрдкрд╛рджрд┐рдд рдХреА рд╣реИред рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рдЕрдХреНрд╕рд░ рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред


 BEGIN; UPDATE vacancy SET edited_at = NOW() WHERE id = 123; DELETE FROM vacancy_language WHERE vacancy_id = 123; INSERT INTO vacancy_language (vacancy_id, language_id, level) VALUES (123, 1, "fluent"), (123, 2, "technical"); DELETE FROM vacancy_metro_station WHERE vacancy_id = 123; INSERT INTO vacancy_metro_station (vacancy_id, metro_station_id) VALUES (123, 55); ... COMMIT; 

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


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


рдЙрд╕реА рд╕рдордп, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдпрджрд┐ рдкрд╛рда рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдП, рд╕рд╛рде рд╣реА рд╕реНрдлрд┐рдВрдХреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рднреЗрдЬрдирд╛ рднреАред


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


рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдмрд┐рдиреЛрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрд╕реА рд╕рд░реНрд╡рд░ рд╕реЗ рд▓рд╛рдкрддрд╛ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ рд╣рдо рдмрд┐рдирд▓реЙрдЧ рдкрдврд╝рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИред


 [data_source.vacancy] #               #   -      id     parts = 4 query = """ SELECT vacancy.id AS `:id`, vacancy.profession AS `profession_text:field`, GROUP_CONCAT(DISTINCT vacancy_language.language_id) AS `languages:attr_multi`, GROUP_CONCAT(DISTINCT vacancy_metro_station.metro_station_id) AS `metro:attr_multi` FROM vacancy LEFT JOIN vacancy_language ON vacancy_language.vacancy_id = vacancy.id LEFT JOIN vacancy_metro_station ON vacancy_metro_station.vacancy_id = vacancy.id GROUP BY vacancy.id """ 

рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ, рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: [___]:___ ред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рд╛рдкрддрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ)ред


рд╣рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ:


 SELECT vacancy.id AS `id`, vacancy.profession AS `profession_text`, GROUP_CONCAT(DISTINCT vacancy_language.language_id) AS `languages`, GROUP_CONCAT(DISTINCT vacancy_metro_station.metro_station_id) AS `metro` FROM vacancy LEFT JOIN vacancy_language ON vacancy_language.vacancy_id = vacancy.id LEFT JOIN vacancy_metro_station ON vacancy_metro_station.vacancy_id = vacancy.id WHERE vacancy.id IN (< id ,   >) GROUP BY vacancy.id 

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


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


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


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


рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрдИ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╣реЛрддреА рд╣реИред


  1. рд╣рдо рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ


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


  2. MariaDB рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ


    рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ, рд╣рдо рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдирдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдмрд┐рдирд▓реЙрдЧ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред


  3. рд╣рдо рдЕрдиреБрдХреНрд░рдордгрдХ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


    indexer --config tmp.vacancy.indexer.0.conf --all рдкреНрд░рдкрддреНрд░ indexer --config tmp.vacancy.indexer.0.conf --all рдХрдорд╛рдВрдб indexer --config tmp.vacancy.indexer.0.conf --all рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ, рддреЛ рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╕рднреА рднрд╛рдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред


  4. рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рдЗрдВрдбреЗрдХреНрд╕ рдлрд╛рдЗрд▓ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ


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


     [index_uploader] executable = "rsync" arguments = [ "--files-from=-", "--log-file=<<.DataDir>>/rsync.<<.Host>>.log", "--no-relative", "--times", "--delay-updates", ".", "rsync://<<.Host>>/index/vacancy/", ] 

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


  5. рд╣рдо рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ


    рд╣рдо рдмрд┐рдирд▓реЙрдЧ рдкрдврд╝рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рдВрдЪрдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЧреЛрд░реЛрдЗрди рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред


  6. рдкреБрд░рд╛рдиреЗ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдирдП рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ


    рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдиреБрдХреНрд░рдорд┐рдХ рдкреНрд░рд╢реНрди рдмрдирд╛рддреЗ рд╣реИрдВ RELOAD INDEX vacancy_plain , TRUNCATE INDEX vacancy_plain , ATTACH INDEX vacancy_plain TO vacancy ред рдпрджрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдпрджрд┐ рд╣рдо рдЙрддреНрдкрд╛рджрди рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рднреА рд╕рд░реНрд╡рд░ рдкрд░ рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрд╕реЗ рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ (рддрд╛рдХрд┐ рдХреЛрдИ TRUNCATE рдФрд░ ATTACH рдмреАрдЪ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рдЪрдпрди рди рдХрд░ рд╕рдХреЗ), рдФрд░ рдЬреИрд╕реЗ рд╣реА рдЕрдВрддрд┐рдо ATTACH рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЗрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЛрдб рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред


  7. рд╕рд╣реЗрдЬреЗ рдЧрдП рд╕реНрдерд╛рди рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛


    рдЬреИрд╕реЗ рд╣реА рд╣рдо рд╕рднреА рд░рд┐рдпрд▓рдЯрд╛рдЗрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдирд╡рдирд┐рд░реНрдорд┐рдд рдХреЗ рд╕рд╛рде рдмрджрд▓рддреЗ рд╣реИрдВ, рд╣рдо рдмрд┐рдирд▓реЙрдЧ рд╕реЗ рдкрдврд╝рдирд╛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд┐рдирд▓реЙрдЧ рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрдЪрд╛рдпрд╛ рдерд╛ред



рдорд╛рд░рд┐рдпрд╛рдбреАрдмреА рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдЧреНрд░рд╛рдл рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдмреИрдХрд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдмреИрдХрд▓реЙрдЧ


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


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


рдЕрджреНрдпрддрди рд╡рд┐рддрд░рдг рдпреЛрдЬрдирд╛


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


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


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


рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдмрдирд╛рдпрд╛, рдЬреЛ рдмрд╕ рдпрд╣реА рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓реЗрдирджреЗрди рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд╣рдо MariaDB @@gtid_current_pos рд╕реЗ рдЕрдиреБрд░реЛрдз @@gtid_current_pos рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдХреЗ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдордиреЗ рдЗрд╕ рд╕рдордп рддрдХ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рднреА рд▓реЗрдирджреЗрди рд▓рд╛рдЧреВ рдХрд░ рджрд┐рдП рд╣реИрдВ, рддреЛ рд╕реЗрд╡рд╛ рддреБрд░рдВрдд рдЬрд╡рд╛рдм рджреЗрддреА рд╣реИ рдХрд┐ рд╣рдо рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЧреЛрд░реЛрдЗрди рдореЗрдВ, рд╣рдо рдЗрд╕ GTID рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЬреИрд╕реЗ рд╣реА рдпрд╣ (рдпрд╛ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЛрдИ рднреА) рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред


PHP рдХреЛрдб рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


 <?php declare(strict_types=1); use GuzzleHttp\ClientInterface; use GuzzleHttp\RequestOptions; use PDO; class RiverClient { private const REQUEST_METHOD = 'post'; /** * @var ClientInterface */ private $httpClient; public function __construct(ClientInterface $httpClient) { $this->httpClient = $httpClient; } public function waitForSync(PDO $mysqlConnection, PDO $sphinxConnection, string $riverAddr): void { $masterGTID = $mysqlConnection->query('SELECT @@gtid_current_pos')->fetchColumn(); $this->httpClient->request( self::REQUEST_METHOD, "http://{$riverAddr}/wait", [RequestOptions::FORM_PARAMS => ['gtid' => $masterGTID]] ); } } 

рдкрд░рд┐рдгрд╛рдо


рдирддреАрдЬрддрди, рд╣рдо MariaDB рдФрд░ рд╕реНрдлрд┐рдВрдХреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рджреЗрд░реА рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред


рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкреНрд▓реЗрди рдЗрдВрдбреЗрдХреНрд╕ рд▓реИрдЧ


рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЖрд░рдЯреА-рдЗрдВрдбреЗрдХреНрд╕ рд▓реИрдЧ


рд╣рдореЗрдВ рдпрд╣ рднреА рднрд░реЛрд╕рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдкрдбреЗрдЯ рд╣рдорд╛рд░реЗ Sphinx рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдордп рдкрд░ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЦреЛрдЬ рдкрд░реАрдХреНрд╖рдг (рдореИрдиреБрдЕрд▓ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рджреЛрдиреЛрдВ) рдЕрдзрд┐рдХ рд╕реБрдЦрдж рдмрди рдЧрдП рд╣реИрдВред


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╣рдореЗрдВ рдореБрдлреНрдд рдореЗрдВ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рд╕рд╛рджреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░рд┐рдпрд▓рдЯрд╛рдЗрдо рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдереЛрдбрд╝рд╛ рдЦрд░рд╛рдм рд░рд╣рд╛ред


рд╕рд╛рджреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдХрд╛ рд╡рд┐рддрд░рдг рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдХреНрд╡реЗрд░реА рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рд╕рдордп - рд╕рд╛рдбрд╛


рдФрд░ рдпрд╣рд╛рдБ рд░рд┐рдпрд▓рдЯрд╛рдЗрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЪрд╛рд░реНрдЯ рд╣реИред


рдХреНрд╡реЗрд░реА рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рд╕рдордп - realtime


рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "рддреЗрдЬрд╝" рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА рдереЛрдбрд╝реА рдХрдо рд╣реЛ рдЧрдИ рд╣реИ, рдЬрдмрдХрд┐ "рдзреАрдореА" рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА рдмрдврд╝ рдЧрдИ рд╣реИред


рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


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


рд╕рдВрджрд░реНрдн


  1. рд╡реАрдбрд┐рдпреЛ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рд╕реНрд▓рд╛рдЗрдб
  2. рд╣рд╛рдИрд░реЛрдб ++ рдкрд░ рдПрдВрдбреНрд░реА рд╕реНрдорд┐рд░рдиреЛрд╡ рдФрд░ рд╡реНрдпрд╛рдЪреЗрд╕реНрд▓рд╛рд╡ рдХреНрд░рд╛рдпреБрдХреЛрд╡ рджреНрд╡рд╛рд░рд╛ рд╡реАрдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ
  3. рдЧреЛ- mysql рдкреБрд╕реНрддрдХрд╛рд▓рдп
  4. рд╕реЗрд╡рд╛ рдХреЛрдб рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде

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


All Articles