рдирдорд╕реНрдХрд╛рд░
рдорд╛рдЭреЗ рдирд╛рд╡ рд╡рд╛рдиреНрдпрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдореА рдЬрд╛рд╡рд╛ рдбреЗрд╡реНрд╣рд▓рдкрд░ рдЖрд╣реЗ. рдЕрд╕реЗ рдШрдбрддреЗ рдХреА рдореА PostgreSQL рд╕рд╣ рдЦреВрдк рдХрд╛рдо рдХрд░рддреЛ - рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрдЯ рдХрд░рдгреЗ, рд░рдЪрдирд╛, рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ рдЖрдгрд┐ рдЖрдард╡рдбреНрдпрд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдереЛрдбреЗ DBA рдЦреЗрд│рдгреЗ.
рдЕрд▓реАрдХрдбреЗ рдореА рдЖрдордЪреНрдпрд╛ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдордзреНрдпреЗ рдЕрдиреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдиреАрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рдЬрд╛рд╡рд╛ рд▓рд╛рдпрдмреНрд░рд░реА рд▓рд┐рд╣рд┐рд▓реА рдЖрд╣реЗ
рдЬрдмрд╛рдмрджрд╛рд░реА рдирд╛рдХрд╛рд░рдгреЗ
PostgreSQL рдЪреА рдореБрдЦреНрдп рдЖрд╡реГрддреНрддреА рдореА рдЬреНрдпрд╛рд╡рд░ рдХрд╛рдо рдХрд░рддреЛ рддреА 10 рдЖрд╣реЗ. рдореА рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ SQL рдХреНрд╡реЗрд░реАрдВрдЪреА рдЖрд╡реГрддреНрддреА резрез рд╡рд░ рджреЗрдЦреАрд▓ рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЬрд╛рддреЗ. рдХрд┐рдорд╛рди рд╕рдорд░реНрдерд┐рдд рдЖрд╡реГрддреНрддреА 11 рдЖрд╣реЗ.
prehistory
рд╣реЗ рд╕рд░реНрд╡ рдЬрд╡рд│рдЬрд╡рд│ рдПрдХ рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реА рдорд╛рдЭреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рдЪрд┐рддреНрд░ рдкрд░рд┐рд╕реНрдерд┐рддреАрд╕рд╣ рд╕реБрд░реВ рдЭрд╛рд▓реЗ: рдирд┐рд│реНрдпрд╛рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдЪреА рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдирд┐рд░реНрдорд┐рддреА рддреНрд░реБрдЯреАрд╕рд╣ рд╕рдорд╛рдкреНрдд рдЭрд╛рд▓реА. рдЗрдВрдбреЗрдХреНрд╕ рд╕реНрд╡рддрдГ рдиреЗрд╣рдореАрдкреНрд░рдорд╛рдгреЗрдЪ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЕрд╡реИрдз рд╕реНрдерд┐рддреАрдд рд░рд╛рд╣рд┐рд▓рд╛. рд▓реЙрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рдиреЗ рдХрдорддрд░рддрд╛ рджрд░реНрд╢рд╡рд┐рд▓реА
рд╕рдорд╕реНрдпрд╛ рдПрдХ - рдбреАрдлреЙрд▓реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди
рдХреЙрдлреА рдореЗрдХрд░рд╡рд░ рдЪрд╛рд▓рд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрдгрд╛рд▒реНрдпрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕рдЪреНрдпрд╛ рд░реВрдкрдХрд╛рддреВрди рдХрджрд╛рдЪрд┐рдд рдкреНрд░рддреНрдпреЗрдХрдЬрдг рдХрдВрдЯрд╛рд│рд▓рд╛ рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ... рдбреАрдлреЙрд▓реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЦрд░реЛрдЦрд░рдЪ рдЕрдиреЗрдХ рдкреНрд░рд╢реНрди рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ. рдХрдореАрддрдХрдореА, рддреНрдпрд╛рдХрдбреЗ рд▓рдХреНрд╖ рджреЗрдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ рджреЗрдЦрднрд╛рд▓_рдХрд╛рд░реНрдп_рдореЗрдо, temp_file_limit, рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ_рдЯрд╛рдЗрдордЖрдЙрдЯ ╨╕ рд▓реЙрдХ_рдЯрд╛рдЗрдордЖрдЙрдЯ.
рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рджреЗрдЦрднрд╛рд▓_рдХрд╛рд░реНрдп_рдореЗрдо рдбреАрдлреЙрд▓реНрдЯ 64 MB рд╣реЛрддреЗ, рдЖрдгрд┐ temp_file_limit рд╕реБрдорд╛рд░реЗ 2 GB - рдореЛрдареНрдпрд╛ рдЯреЗрдмрд▓рд╡рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдкреБрд░реЗрд╢реА рдореЗрдорд░реА рдирд╡реНрд╣рддреА.
рдореНрд╣рдгреВрди, рдордзреНрдпреЗ pg-рдЗрдВрдбреЗрдХреНрд╕-рдЖрд░реЛрдЧреНрдп рдореА рдПрдХ рдорд╛рд▓рд┐рдХрд╛ рдЧреЛрд│рд╛ рдХреЗрд▓реА
рд╕рдорд╕реНрдпрд╛ рджреЛрди - рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛
рдЖрдордЪреЗ рдбреЗрдЯрд╛рдмреЗрд╕ SSD рдбреНрд░рд╛рдЗрд╡реНрд╣рд╡рд░ рд░рд╛рд╣рддрд╛рдд рдЖрдгрд┐ рдЖрдореНрд╣реА рд╡рд╛рдкрд░рддреЛ HA- рдПрдХрд╛рдзрд┐рдХ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░рд╛рдВрд╕рд╣ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди, рдорд╛рд╕реНрдЯрд░ рд╣реЛрд╕реНрдЯ рдЖрдгрд┐ n- рдкреНрд░рддрд┐рдХреГрддреАрдВрдЪреА рд╕рдВрдЦреНрдпрд╛. рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЕрддрд┐рд╢рдп рдореМрд▓реНрдпрд╡рд╛рди рд╕рдВрд╕рд╛рдзрди рдЖрд╣реЗ; рд╣реЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЖрдгрд┐ CPU рд╡рд╛рдкрд░рд╛рдкреЗрдХреНрд╖рд╛ рдХрдореА рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рдПрдХреАрдХрдбреЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдЬрд▓рдж рд╡рд╛рдЪрдирд╛рд╕рд╛рдареА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ, рдЖрдгрд┐ рджреБрд╕рд░реАрдХрдбреЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкрд╛рд╣реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реАрдд, рдХрд╛рд░рдг рддреЗ рдЬрд╛рдЧрд╛ рдЦрд╛рддрд╛рдд рдЖрдгрд┐ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдгреЗ рдХрдореА рдХрд░рддрд╛рдд.
рдЖрдгрд┐ рдЖрддрд╛, рд╕рд░реНрд╡рдХрд╛рд╣реА рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ
рд╕рдорд╕реНрдпрд╛ рддреАрди - рдПрдХрдореЗрдХрд╛рдВрдирд╛ рдЫреЗрджрдгрд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ
рдмрд╣реБрддреЗрдХ рдирд╡рд╢рд┐рдХреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рдХ рдПрдХрд╛рдЪ рд╕реНрддрдВрднрд╛рд╡рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░рддрд╛рдд. рд╣рд│реВрд╣рд│реВ, рдпрд╛ рд╡реНрдпрд╡рд╕рд╛рдпрд╛рдЪрд╛ рдкреВрд░реНрдг рдЕрдиреБрднрд╡ рдШреЗрддрд▓реНрдпрд╛рдирдВрддрд░, рд▓реЛрдХ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░реВ рд▓рд╛рдЧрддрд╛рдд рдЖрдгрд┐ рдЕрдиреЗрдХ рд╕реНрддрдВрднрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЬреЛрдбреВ рд▓рд╛рдЧрддрд╛рдд. рд╕реНрддрдВрднрд╛рдВрд╡рд░реАрд▓ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рджрд┐рд╕рддрд╛рдд A, рдП + рдмреА, A+B+C рдЖрдгрд┐ рдЕрд╕реЗрдЪ. рдпрд╛рдкреИрдХреА рдкрд╣рд┐рд▓реЗ рджреЛрди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рдмрд╛рд╣реЗрд░ рдЯрд╛рдХрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдХрд╛рд░рдг рддреЗ рддрд┐рд╕рд▒реНрдпрд╛рдЪреЗ рдЙрдкрд╕рд░реНрдЧ рдЖрд╣реЗрдд. рд╣реЗ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕рдЪреА рдЦреВрдк рдмрдЪрдд рдХрд░рддреЗ рдЖрдгрд┐ рдпрд╛рд╕рд╛рдареА рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдЖрд╣реЗрдд
рд╕рдорд╕реНрдпрд╛ рдЪрд╛рд░ - рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрд╢рд┐рд╡рд╛рдп рдкрд░рджреЗрд╢реА рдХреА
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рддреБрдореНрд╣рд╛рд▓рд╛ рдмреЕрдХрд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд░рддрд╛ рдкрд░рджреЗрд╢реА рдХреА рдорд░реНрдпрд╛рджрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдмрд▒реНрдпрд╛рдЪ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдордзреНрдпреЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рдирд╛рд╣реА, рдЖрдгрд┐ рдХрджрд╛рдЪрд┐рдд рдкреНрд░рдХрдЯрд╣реА рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА... рд╕рдзреНрдпрд╛рддрд░реА...
рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрддрд╣реА рдЕрд╕реЗрдЪ рд╣реЛрддреЗ: рдХрд╛рд╣реА рд╡реЗрд│рд╛ рдПрдЦрд╛рджреЗ рдХрд╛рдо, рд╡реЗрд│рд╛рдкрддреНрд░рдХрд╛рдиреБрд╕рд╛рд░ рдЪрд╛рд▓рдгрд╛рд░реЗ рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдСрд░реНрдбрд░рдЪрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╛рдл рдХрд░рдгреЗ, рдорд╛рд╕реНрдЯрд░ рд╣реЛрд╕реНрдЯрджреНрд╡рд╛рд░реЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА "рдЬреЛрдбрд▓реЗ" рдЬрд╛рдК рд▓рд╛рдЧрд▓реЗ. CPU рдЖрдгрд┐ IO рд╡рд╛рдпрд╛ рдЧреЗрд▓реЗ, рд╡рд┐рдирдВрддреНрдпрд╛ рдХрдореА рдЭрд╛рд▓реНрдпрд╛ рдЖрдгрд┐ рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЭрд╛рд▓реЗ, рд╕реЗрд╡рд╛ рдкрд╛рдЪрд╢реЗ рд╣реЛрддреА. рджреНрд░реБрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг
delete from <table> where id in (тАж)
рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЕрд░реНрдерд╛рддрдЪ, рд▓рдХреНрд╖реНрдп рд╕рд╛рд░рдгреАрдордзреНрдпреЗ рдЖрдпрдбреАрдиреБрд╕рд╛рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╣реЛрддреА рдЖрдгрд┐ рдкрд░рд┐рд╕реНрдерд┐рддреАрдиреБрд╕рд╛рд░ рдлрд╛рд░рдЪ рдХрдореА рд░реЗрдХреЙрд░реНрдб рд╣рдЯрд╡рд┐рд▓реЗ рдЧреЗрд▓реЗ. рдЕрд╕реЗ рд╡рд╛рдЯрд▓реЗ рдХреА рд╕рд░реНрд╡рдХрд╛рд╣реА рдХрд╛рд░реНрдп рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рдкрд░рдВрддреБ, рдЕрд░реЗрд░реЗ, рддрд╕реЗ рдЭрд╛рд▓реЗ рдирд╛рд╣реА.
рдЖрд╢реНрдЪрд░реНрдпрдХрд╛рд░рдХ рдмрдЪрд╛рд╡рд╛рд╕рд╛рдареА рдЖрд▓реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реНрдкрд╖реНрдЯ рдХрд░рд╛ рдЖрдгрд┐ рдореНрд╣рдгрд╛рд▓реЗ рдХреА рд▓рдХреНрд╖реНрдп рддрдХреНрддреНрдпрд╛рддреАрд▓ рд░реЗрдХреЙрд░реНрдб рд╣рдЯрд╡рдгреНрдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдПрдХ рд╕рдВрджрд░реНрдн рдЕрдЦрдВрдбрддрд╛ рддрдкрд╛рд╕рдгреА рджреЗрдЦреАрд▓ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдЯреЗрдмрд▓рд╛рдВрдкреИрдХреА рдПрдХрд╛рд╡рд░ рд╣реА рддрдкрд╛рд╕рдгреА рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реА рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдХреЕрди рдпреЛрдЧреНрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдЪреНрдпрд╛ рдЕрднрд╛рд╡рд╛рдореБрд│реЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдирд┐рджрд╛рдирд╛рдЪрд╛ рдЬрдиреНрдо рдЭрд╛рд▓рд╛
рд╕рдорд╕реНрдпрд╛ рдкрд╛рдЪ - рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдордзреНрдпреЗ рд╢реВрдиреНрдп рдореВрд▓реНрдп
рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕рдордзреНрдпреЗ btree рдЗрдВрдбреЗрдХреНрд╕реЗрд╕рдордзреНрдпреЗ рд╢реВрдиреНрдп рдореВрд▓реНрдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕рддреЛ, рдкрд░рдВрддреБ рддреЗрдереЗ рддреНрдпрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рддреЗ. рдореНрд╣рдгреВрди, рдореА рдкрд░рд┐рд╢реНрд░рдордкреВрд░реНрд╡рдХ рд╣реЗ рд╢реВрдиреНрдп (рдирд┐рджрд╛рди where <A> is not null
. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдореА рдЖрдордЪреНрдпрд╛ рдПрдХрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдЪрд╛ рдЖрдХрд╛рд░ 1877 MB рд╡рд░реВрди 16 KB рдкрд░реНрдпрдВрдд рдХрдореА рдХрд░реВ рд╢рдХрд▓реЛ. рдЖрдгрд┐ рдПрдХрд╛ рд╕реЗрд╡реЗрдордзреНрдпреЗ, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдордзреВрди рд╢реВрдиреНрдп рдореВрд▓реНрдпреЗ рд╡рдЧрд│рд▓реНрдпрд╛рдореБрд│реЗ рдбреЗрдЯрд╛рдмреЗрд╕рдЪрд╛ рдЖрдХрд╛рд░ рдПрдХреВрдг 16% (рдирд┐рд░рдкреЗрдХреНрд╖ рд╕рдВрдЦреНрдпреЗрдд 4.3 GB рдиреЗ) рдХрдореА рдЭрд╛рд▓рд╛. рдЕрддрд┐рд╢рдп рд╕реЛрдкреНрдпрд╛ рд╕реБрдзрд╛рд░рдгрд╛рдВрд╕рд╣ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕рдордзреНрдпреЗ рдкреНрд░рдЪрдВрдб рдмрдЪрдд. ЁЯЩВ
рд╕рдорд╕реНрдпрд╛ рд╕рд╣рд╛ - рдкреНрд░рд╛рдердорд┐рдХ рдХрд│рд╛рдВрдЪрд╛ рдЕрднрд╛рд╡
рдпрдВрддреНрд░рдгреЗрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдореБрд│реЗ
рдПрдХреЗ рджрд┐рд╡рд╢реА, рдПрдХрд╛ рдЕрджреНрднреБрдд рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдиреЗ рдореЛрдареНрдпрд╛ рдЖрдгрд┐ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рдЯреЗрдмрд▓рдордзреАрд▓ рд╕рд░реНрд╡ рд░реЗрдХреЙрд░реНрдб рдШреЗрддрд▓реЗ рдЖрдгрд┐ рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗ. рдЖрдореНрд╣рд╛рд▓рд╛ рдирд┐рд│реНрдпрд╛ рд░рдВрдЧрд╛рдд рдЯреЗрдмрд▓ рдЖрдХрд╛рд░рд╛рдд +100 GB рдорд┐рд│рд╛рд▓реЗ. рд╣реА рдЕрддреНрдпрдВрдд рд▓рд╛рдЬрд┐рд░рд╡рд╛рдгреА рдЧреЛрд╖реНрдЯ рд╣реЛрддреА, рдкрд░рдВрддреБ рдЖрдордЪреА рдЧреИрд░рд╕реЛрдп рддрд┐рдереЗрдЪ рд╕рдВрдкрд▓реА рдирд╛рд╣реА. рдпрд╛ рдЯреЗрдмрд▓рд╡рд░реАрд▓ рдСрдЯреЛрд╡реНрд╣реЕрдХреНрдпреВрдо 15 рддрд╛рд╕рд╛рдВрдирдВрддрд░ рд╕рдВрдкрд▓реНрдпрд╛рдирдВрддрд░, рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЭрд╛рд▓реЗ рдХреА рднреМрддрд┐рдХ рд╕реНрдерд╛рди рдкрд░рдд рдпреЗрдгрд╛рд░ рдирд╛рд╣реА. рдЖрдореНрд╣реА рд╕реЗрд╡рд╛ рдерд╛рдВрдмрд╡реВ рд╢рдХрдд рдирд╛рд╣реА рдЖрдгрд┐ рд╡реНрд╣реЕрдХреНрдпреВрдо рдкреВрд░реНрдг рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ
рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ 0.1.5 рдЯреЗрдмрд▓ рдЖрдгрд┐ рдЗрдВрдбреЗрдХреНрд╕рдЪреНрдпрд╛ рдмреНрд▓реЛрдЯрдордзреВрди рдбреЗрдЯрд╛ рдЧреЛрд│рд╛ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рддреНрдпрд╛рд▓рд╛ рд╡реЗрд│реЗрд╡рд░ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ.
рд╕рд╛рдд рдЖрдгрд┐ рдЖрда рд╕рдорд╕реНрдпрд╛ - рдЕрдкреБрд░реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЖрдгрд┐ рди рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ
рдЦрд╛рд▓реАрд▓ рджреЛрди рдирд┐рджрд╛рди рдЖрд╣реЗрдд:
рдореА рдЖрдзреАрдЪ рд▓рд┐рд╣рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдЖрдореНрд╣реА рдЕрдиреЗрдХ рдкреНрд░рддрд┐рдХреГрддреАрдВрд╕рд╣ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡рд╛рдкрд░рддреЛ рдЖрдгрд┐ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╣реЛрд╕реНрдЯрд╡рд░реАрд▓ рд╡рд╛рдЪрди рд▓реЛрдб рдореВрд▓рднреВрддрдкрдгреЗ рднрд┐рдиреНрди рдЖрд╣реЗ. рдкрд░рд┐рдгрд╛рдореА, рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╢реА рджрд┐рд╕реВрди рдпреЗрддреЗ рдХреА рдХрд╛рд╣реА рд╣реЛрд╕реНрдЯрд╡рд░реАрд▓ рдХрд╛рд╣реА рд╕рд╛рд░рдгреНрдпрд╛ рдЖрдгрд┐ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрд░рд┐рддреНрдпрд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдд рдирд╛рд╣реАрдд рдЖрдгрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рд╕рд░реНрд╡ рд╣реЛрд╕реНрдЯрдХрдбреВрди рдЖрдХрдбреЗрд╡рд╛рд░реА рдЧреЛрд│рд╛ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдХрдзреАрд╣реА рди рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛рдвреВрди рддрд╕реЗрдЪ рдХреНрд╡рдЪрд┐рдд рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреНрдпреЗ рдЧрд╣рд╛рд│ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЬреЛрдбреВрди рдЕрдиреЗрдХ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рд╡рд╛рдЪрд╡рд┐рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджрд┐рд▓реА.
рдирд┐рд╖реНрдХрд░реНрд╖ рдореНрд╣рдгреВрди
рдЕрд░реНрдерд╛рдд, рдЬрд╡рд│рдЬрд╡рд│ рд╕рд░реНрд╡ рдирд┐рджрд╛рдирд╛рдВрд╕рд╛рдареА рдЖрдкрдг рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ рд╢рдХрддрд╛
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд▓рд╛рдВрддрд░рд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рд▓рдЧреЗрдЪ рдХрд╛рд╣реА рдирд┐рджрд╛рди рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЖрдгрд┐ рд╣реЗ рдХрджрд╛рдЪрд┐рдд рдорд╛рдЭреНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рд╕рд░реНрд╡рд╛рдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ. рд╡рд╛рдкрд░рд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЗ
рди рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдХрд┐рдВрд╡рд╛ рдЧрд╣рд╛рд│ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрд╕рд╛рдареА рддрд╕реЗрдЪ рдмреНрд▓реЛрдЯрд╕рд╛рдареА, рдХреЗрд╡рд│ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ рддрдкрд╛рд╕рдгреА рдХрд░рдгреЗ рдЕрд░реНрдердкреВрд░реНрдг рдЖрд╣реЗ. рд╕рдВрдХрд▓рд┐рдд рдореВрд▓реНрдпреЗ рд░реЗрдХреЙрд░реНрдб рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд
рдорд▓рд╛ рдЦрд░реЛрдЦрд░ рдЕрд╢реА рдЖрд╢рд╛ рдЖрд╣реЗ pg-рдЗрдВрдбреЗрдХреНрд╕-рдЖрд░реЛрдЧреНрдп рдЙрдкрдпреБрдХреНрдд рдЖрдгрд┐ рдорд╛рдЧрдгреА рдЕрд╕реЗрд▓. рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдкрдбрд▓реЗрд▓реНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪрд╛ рдЕрд╣рд╡рд╛рд▓ рджреЗрдКрди рдЖрдгрд┐ рдирд╡реАрди рдирд┐рджрд╛рди рд╕реБрдЪрд╡реВрди рддреБрдореНрд╣реА рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдд рдпреЛрдЧрджрд╛рди рджреЗрдК рд╢рдХрддрд╛.
рд╕реНрддреНрд░реЛрдд: www.habr.com