PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдЕрд╣рд╡рд╛рд▓рд╛рдд рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгрд╛рд░реЗ рдХрд╛рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрди рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЖрд╣реЗрдд рджрд░рд░реЛрдЬ рд▓рд╛рдЦреЛ рдХреНрд╡реЗрд░реА рдЕрд╕рддрд╛рдд рддреЗрд╡реНрд╣рд╛ SQL рдХреНрд╡реЗрд░реАрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рд╛, рдЖрдгрд┐ рддреЗрдереЗ рд╢реЗрдХрдбреЛ рдирд┐рд░реАрдХреНрд╖рдг рдХреЗрд▓реЗрд▓реЗ PostgreSQL рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗрдд.

рдХреЛрдгрддреЗ рддрд╛рдВрддреНрд░рд┐рдХ рдЙрдкрд╛рдп рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд╢рд╛ рдорд╛рд╣рд┐рддреАрдЪреНрдпрд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддрд╛рдд рдЖрдгрд┐ рдпрд╛рдореБрд│реЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд╕рдХрд╛рдЪреЗ рдЬреАрд╡рди рдХрд╕реЗ рд╕реЛрдкреЗ рд╣реЛрддреЗ?


рдХреЛрдгрд╛рд▓рд╛ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЖрд╣реЗ? рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдЖрдгрд┐ рд╡рд┐рд╡рд┐рдз рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рддрдВрддреНрд░рд╛рдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг SQL рдХреНрд╡реЗрд░реА рдЖрдгрд┐ PostgreSQL рдордзреНрдпреЗ рдард░рд╛рд╡рд┐рдХ DBA рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреЗ - рддреБрдореНрд╣реА рджреЗрдЦреАрд▓ рдХрд░реВ рд╢рдХрддрд╛ рд▓реЗрдЦрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛ рд╡рд╛рдЪрд╛ рдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)
рдорд╛рдЭреЗ рдирд╛рд╡ рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ рдЖрд╣реЗ, рдореА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЛ рдЯреЗрдиреНрд╕рд░ рдХрдВрдкрдиреА. рд╡рд┐рд╢реЗрд╖рддрдГ, рдореА рдЖрдордЪреНрдпрд╛ рдХрдВрдкрдиреАрддреАрд▓ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдд рдорд╛рд╣рд┐рд░ рдЖрд╣реЗ.

рдЖрдЬ рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧреЗрди рдХреА рдЖрдореНрд╣реА рдХреНрд╡реЗрд░реА рдХрд╢реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рддреЛ, рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛рдЪ рдХреНрд╡реЗрд░реАрдЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди "рд╡реЗрдЧрд│реЗ" рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рддреЗ, рдкрд░рдВрддреБ рд╕рдорд╕реНрдпрд╛ рдПрдХрддреНрд░рд┐рддрдкрдгреЗ рд╕реЛрдбрд╡рд╛. рдЬреЗрд╡реНрд╣рд╛ рд▓рд╛рдЦреЛ рд╡рд┐рдирдВрддреНрдпрд╛ рдЕрд╕рддрд╛рдд рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ рд╕рдорд╛рдзрд╛рдирд╛рдХрдбреЗ рдЬрд╛рдгреНрдпрд╛рдЪрд╛ рджреГрд╖реНрдЯреАрдХреЛрди рд╣реА рдореЛрдареА рд╕рдорд╕реНрдпрд╛.

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

рддреЗ рд╕рд░реНрд╡ рд╕рд╛рдорд╛рдиреНрдпрдкрдгреЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рдЖрдгрд┐ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛рдд рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рджреЗрд╢рднрд░рд╛рдд 10 рд╡рд┐рдХрд╛рд╕ рдХреЗрдВрджреНрд░реЗ рдЖрд╣реЗрдд, рддреНрдпрд╛рдкреИрдХреА рдЕрдзрд┐рдХ рдЖрд╣реЗрдд 1000 рд╡рд┐рдХрд╕рдХ.

рдЖрдореНтАНрд╣реА 2008 рдкрд╛рд╕реВрди PostgreSQL рд╕реЛрдмрдд рдХрд╛рдо рдХрд░рдд рдЖрд╣реЛрдд рдЖрдгрд┐ рдЖрдореНрд╣реА рдХрд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЛ - рдХреНрд▓рд╛рдпрдВрдЯ рдбреЗрдЯрд╛, рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп, рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ, рдмрд╛рд╣реНрдп рдорд╛рд╣рд┐рддреА рдкреНрд░рдгрд╛рд▓реАрдВрдХрдбреАрд▓ рдбреЗрдЯрд╛ - рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдЬрдорд╛ рдХреЗрд▓реЗ рдЖрд╣реЗ. 400TB рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд. рдПрдХрдЯреНрдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рдордзреНрдпреЗ рд╕реБрдорд╛рд░реЗ 250 рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗрдд рдЖрдгрд┐ рдПрдХреВрдг рд╕реБрдорд╛рд░реЗ 1000 рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗрдд рдЬреНрдпрд╛рдВрдЪреЗ рдЖрдореНрд╣реА рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЛ.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

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

рдХрд╛рд╣реА рдбреАрдмреАрдПрдордПрд╕ рдЗрд╢рд╛рд░реЗ рд╕реНрд╡реАрдХрд╛рд░рддрд╛рдд: тАЬрдирд╛рд╣реА, рдпрд╛ рджреЛрди рдЯреЗрдмрд▓реНрд╕рд▓рд╛ рдЕрд╢рд╛ рдЖрдгрд┐ рдЕрд╢рд╛ рд░рд╛рдВрдЧреЗрдд рдХрдиреЗрдХреНрдЯ рдХрд░рд╛,тАЭ рдкрд░рдВрддреБ PostgreSQL рд╣реЗ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. рдЕрдЧреНрд░рдЧрдгреНрдп рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдЪреА рд╣реА рдЬрд╛рдгреАрд╡рдкреВрд░реНрд╡рдХ рд╕реНрдерд┐рддреА рдЖрд╣реЗ: "рдЖрдореНрд╣реА рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рд╕рдВрдХреЗрдд рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭрд░ рдкреВрд░реНрдг рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ."

рдкрд░рдВрддреБ, PostgreSQL "рдмрд╛рд╣реЗрд░реАрд▓" рд╕реНрд╡рддрдГрд╡рд░ рдирд┐рдпрдВрддреНрд░рдг рдареЗрд╡реВ рджреЗрдд рдирд╛рд╣реА рд╣реЗ рдЕрд╕реВрдирд╣реА, рддреЗ рдЙрддреНрддрдо рдкреНрд░рдХрд╛рд░реЗ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рдЖрдд рдХрд╛рдп рдЪрд╛рд▓рд▓реЗ рдЖрд╣реЗ рддреЗ рдкрд╣рд╛рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рддреБрдордЪреА рдХреНрд╡реЗрд░реА рдЪрд╛рд▓рд╡рддрд╛ рдЖрдгрд┐ рдХреБрдареЗ рд╕рдорд╕реНрдпрд╛ рдпреЗрдд рдЖрд╣реЗрдд.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рд╡рд┐рдХрд╛рд╕рдХрд╛рд▓рд╛ [DBA рд▓рд╛] рд╕рд╣рд╕рд╛ рдХреЛрдгрддреНрдпрд╛ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдпреЗрддрд╛рдд? тАЬрдпреЗрдереЗ рдЖрдореНрд╣реА рд╡рд┐рдирдВрддреА рдкреВрд░реНрдг рдХреЗрд▓реА, рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛рдмрд░реЛрдмрд░ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдордВрдж рдЖрд╣реЗ, рд╕рд░реНрд╡ рдХрд╛рд╣реА рд▓рдЯрдХрд▓реЗ рдЖрд╣реЗ, рдХрд╛рд╣реАрддрд░реА рдШрдбрдд рдЖрд╣реЗ... рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪрд╛ рддреНрд░рд╛рд╕!тАЭ

рдХрд╛рд░рдгреЗ рдЬрд╡рд│рдЬрд╡рд│ рдиреЗрд╣рдореАрдЪ рд╕рдорд╛рди рдЕрд╕рддрд╛рдд:

  • рдЕрдХрд╛рд░реНрдпрдХреНрд╖рдо рдХреНрд╡реЗрд░реА рдЕрд▓реНрдЧреЛрд░рд┐рджрдо
    рд╡рд┐рдХрд╕рдХ: "рдЖрддрд╛ рдореА рддреНрдпрд╛рд▓рд╛ SQL рдордзреНрдпреЗ 10 рдЯреЗрдмрд▓реНрд╕ рджреЗрдд рдЖрд╣реЗ JOIN рджреНрд╡рд╛рд░реЗ..." - рдЖрдгрд┐ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЛ рдХреА рддреНрдпрд╛рдЪреА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЪрдорддреНрдХрд╛рд░рд┐рдХрд░рд┐рддреНрдпрд╛ рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ "рдЙрдШрдбрд▓реА" рдЬрд╛рдИрд▓ рдЖрдгрд┐ рддреНрдпрд╛рд▓рд╛ рд╕рд░реНрд╡рдХрд╛рд╣реА рддреНрд╡рд░реАрдд рдорд┐рд│реЗрд▓. рдкрд░рдВрддреБ рдЪрдорддреНрдХрд╛рд░ рдШрдбрдд рдирд╛рд╣реАрдд, рдЖрдгрд┐ рдЕрд╢реА рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛ рдЕрд╕рд▓реЗрд▓реА рдХреЛрдгрддреАрд╣реА рдкреНрд░рдгрд╛рд▓реА (рдПрдХрд╛рдордзреВрди 10 рдЯреЗрдмрд▓) рдиреЗрд╣рдореА рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреА рддреНрд░реБрдЯреА рджреЗрддреЗ. [рд▓реЗрдЦ]
  • рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЖрдХрдбреЗрд╡рд╛рд░реА
    рд╣рд╛ рдореБрджреНрджрд╛ рд╡рд┐рд╢реЗрд╖рддрдГ PostgreSQL рд╕рд╛рдареА рдЕрддрд┐рд╢рдп рд╕рдорд░реНрдкрдХ рдЖрд╣реЗ, рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдореЛрдард╛ рдбреЗрдЯрд╛рд╕реЗрдЯ тАЬрдУрддрд▓рд╛тАЭ рддреЗрд╡реНрд╣рд╛ рд╡рд┐рдирдВрддреА рдХрд░рд╛ рдЖрдгрд┐ рддреЗ рддреБрдордЪреНрдпрд╛ рдЯреЕрдмрд▓реЗрдЯрд▓рд╛ тАЬрд╕реЗрдХреНрд╕рдХреЕрдирд┐рдЯтАЭ рдХрд░рддреЗ. рдХрд╛рд░рдг рдХрд╛рд▓ тАЛтАЛрддреНрдпрд╛рдд 10 рд░реЗрдХреЙрд░реНрдб рд╣реЛрддреЗ, рдЖрдгрд┐ рдЖрдЬ 10 рджрд╢рд▓рдХреНрд╖ рдЖрд╣реЗрдд, рдкрд░рдВрддреБ PostgreSQL рд▓рд╛ рдЕрджреНрдпрд╛рдк рдпрд╛рдЪреА рдорд╛рд╣рд┐рддреА рдирд╛рд╣реА, рдЖрдгрд┐ рдЖрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдмрджреНрджрд▓ рд╕рд╛рдВрдЧрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. [рд▓реЗрдЦ]
  • рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╡рд░ "рдкреНрд▓рдЧ".
    рддреБрдореНрд╣реА рдХрдордХреБрд╡рдд рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдПрдХ рдореЛрдард╛ рдЖрдгрд┐ рдЬрд╛рд╕реНрдд рд▓реЛрдб рдХреЗрд▓реЗрд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдкреБрд░реЗрд╢реА рдбрд┐рд╕реНрдХ, рдореЗрдорд░реА рдХрд┐рдВрд╡рд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдирд╛рд╣реА. рдЖрдгрд┐ рдПрд╡рдвреЗрдЪ... рдХреБрдареЗрддрд░реА рдХрд╛рдордЧрд┐рд░реАрдЪреА рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛ рдЖрд╣реЗ рдЬреНрдпрд╛рд╡рд░ рддреБрдореНрд╣реА рдЖрддрд╛ рдЙрдбреА рдорд╛рд░реВ рд╢рдХрдд рдирд╛рд╣реА.
  • рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рдгреЗ
    рд╣рд╛ рдПрдХ рдХрдареАрдг рдореБрджреНрджрд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреЗ рд╡рд┐рд╡рд┐рдз рд╕реБрдзрд╛рд░рд┐рдд рдкреНрд░рд╢реНрдирд╛рдВрд╕рд╛рдареА (INSERT, UPDATE, DELETE) рд╕рд░реНрд╡рд╛рдд рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗрдд - рд╣рд╛ рдПрдХ рд╡реЗрдЧрд│рд╛ рдореЛрдард╛ рд╡рд┐рд╖рдп рдЖрд╣реЗ.

рдпреЛрдЬрдирд╛ рдорд┐рд│рдд рдЖрд╣реЗ

...рдЖрдгрд┐ рдмрд╛рдХреА рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреАрдВрд╕рд╛рдареА рдЖрдореНрд╣реА рдпреЛрдЬрдирд╛ рд╣рд╡реА рдЖрд╣реЗ! рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдХрд╛рдп рдЪрд╛рд▓рд▓реЗ рдЖрд╣реЗ рддреЗ рдкрд╛рд╣рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

PostgreSQL рд╕рд╛рдареА рдХреНрд╡реЗрд░реА рдПрдХреНрдЭрд┐рдХреНрдпреБрд╢рди рдкреНрд▓реЕрди рд╣рд╛ рдЯреЗрдХреНрд╕реНрдЯ рд░рд┐рдкреНрд░реЗрдЭреЗрдВрдЯреЗрд╢рдирдордзреАрд▓ рдХреНрд╡реЗрд░реА рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪрд╛ рдПрдХ рдЯреНрд░реА рдЖрд╣реЗ. рд╣реЗ рддрдВрддреЛрддрдВрдд рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрд╣реЗ рдЬреЗ рдкреНрд▓реЕрдирд░рдЪреНрдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдореА, рд╕рд░реНрд╡рд╛рдд рдкреНрд░рднрд╛рд╡реА рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рдЖрдврд│рд▓реЗ.

рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░реА рдиреЛрдб рдПрдХ рдСрдкрд░реЗрд╢рди рдЖрд╣реЗ: рдЯреЗрдмрд▓ рдХрд┐рдВрд╡рд╛ рдЗрдВрдбреЗрдХреНрд╕рдордзреВрди рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ, рдмрд┐рдЯрдореЕрдк рддрдпрд╛рд░ рдХрд░рдгреЗ, рджреЛрди рдЯреЗрдмрд▓реНрд╕ рдЬреЛрдбрдгреЗ, рдЬреЛрдбрдгреЗ, рдПрдХрдореЗрдХрд╛рдВрдирд╛ рдЫреЗрджрдгреЗ рдХрд┐рдВрд╡рд╛ рдирд┐рд╡рдбреА рд╡рдЧрд│рдгреЗ. рдХреНрд╡реЗрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпрд╛ рдЭрд╛рдбрд╛рдЪреНрдпрд╛ рдиреЛрдбреНрд╕рдордзреВрди рдЪрд╛рд▓рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.

рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА, рд╡рд┐рдзрд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреЗ рд╣рд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдЖрд╣реЗ EXPLAIN. рд╕рд░реНрд╡ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреБрдгрдзрд░реНрдорд╛рдВрд╕рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдореНрд╣рдгрдЬреЗ, рдореВрд│рд╡рд░ рдХреНрд╡реЗрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА - EXPLAIN (ANALYZE, BUFFERS) SELECT ....

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

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдЬреЗрд╡реНрд╣рд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╡рд┐рдирдВрддреА рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реА рдЧреЗрд▓реА рддреЗрд╡реНрд╣рд╛ рдиреЗрдордХреЗ рдХрд╛рдп рдЭрд╛рд▓реЗ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рд╣реБрд╢рд╛рд░ рд▓реЛрдХрд╛рдВрдиреА рд▓рд┐рд╣рд┐рд▓реЗ auto_explain рдореЙрдбреНрдпреВрд▓. рд╣реЗ рдЬрд╡рд│рдЬрд╡рд│ рд╕рд░реНрд╡ рд╕рд╛рдорд╛рдиреНрдп рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╡рд┐рддрд░рдгрд╛рдВрдордзреНрдпреЗ рдЙрдкрд╕реНрдерд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕рдХреНрд░рд┐рдп рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рдХрд╛рд╣реА рд╡рд┐рдирдВрддреА рддреБрдореНрд╣реА рд╕рд╛рдВрдЧрд┐рддрд▓реЗрд▓реНрдпрд╛ рдорд░реНрдпрд╛рджреЗрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдХрд╛рд│ рдЪрд╛рд▓рдд рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реНрдпрд╛рд╕, рддреЗ рддрд╕реЗ рд╣реЛрддреЗ рдпрд╛ рд╡рд┐рдирдВрддреАрдЪреНрдпрд╛ рдпреЛрдЬрдиреЗрдЪрд╛ тАЬрд╕реНрдиреЕрдкрд╢реЙрдЯтАЭ рдЖрдгрд┐ рд▓реЙрдЧрдордзреНрдпреЗ рдПрдХрддреНрд░ рд▓рд┐рд╣рд┐рддреЛ.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

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

рд╕рд░реНрд╡ рдХрд╛рд╣реА рдареАрдХ рдЖрд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ - рдкрд░рдВрддреБ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдХрд╛рдп рдЭрд╛рд▓реЗ рддреЗ рдХрд╛рд╣реАрд╣реА рд╕реНрдкрд╖реНрдЯ рдирд╛рд╣реА. рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрд│реЗрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣рд╛рд▓рд╛ рдЦрд░реЛрдЦрд░ рдХрд╛рд╣реАрд╣реА рджрд┐рд╕рдд рдирд╛рд╣реА. рдХрд╛рд░рдг рд╕рд╛рдзреНрдпрд╛ рдордЬрдХреБрд░рд╛рдЪреНрдпрд╛ рдЕрд╢рд╛ "рдХреЛрдХрд░реВ" рдХрдбреЗ рдкрд╛рд╣рдгреЗ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рджреГрд╢реНрдпрдорд╛рди рдирд╕рддреЗ.

рдкрд░рдВрддреБ рдЬрд░реА рддреЗ рд╕реНрдкрд╖реНрдЯ рдирд╕рд▓реЗ рддрд░реАрд╣реА, рддреЗ рдЧреИрд░рд╕реЛрдпреАрдЪреЗ рдЕрд╕рд▓реЗ рддрд░реАрд╣реА, рдЖрдгрдЦреА рдореВрд▓рднреВрдд рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗрдд:

  • рдиреЛрдб рд╕реВрдЪрд┐рдд рдХрд░рддреЛ рд╕рдВрдкреВрд░реНрдг рдЙрдкрд╡реГрдХреНрд╖рд╛рдЪреНрдпрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рдмреЗрд░реАрдЬ рддреНрдпрд╛рдЪреНрдпрд╛ рдЦрд╛рд▓реА. рдореНрд╣рдгрдЬреЗрдЪ, рдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдбреЗрдХреНрд╕ рд╕реНрдХреЕрдирдордзреНрдпреЗ рдХрд╛рд╣реА рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдерд┐рддреА рдЕрд╕рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рд╡рд░ рдХрд┐рддреА рд╡реЗрд│ рдШрд╛рд▓рд╡рд▓рд╛ рдЧреЗрд▓рд╛ рд╣реЗ рддреБрдореНрд╣реА рд╢реЛрдзреВ рд╢рдХрдд рдирд╛рд╣реА. рдЖрдд тАЬрдореБрд▓реЗтАЭ рдЖрдгрд┐ рдХрдВрдбрд┐рд╢рдирд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕, CTE рдЖрд╣реЗрдд рдХреА рдирд╛рд╣реА рд╣реЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдкрдг рдбрд╛рдпрдиреЕрдорд┐рдХрдкрдгреЗ рдкрд╛рд╣рд┐рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ - рдЖрдгрд┐ рд╣реЗ рд╕рд░реНрд╡ тАЬрдЖрдкрд▓реНрдпрд╛ рдордирд╛рддтАЭ рд╡рдЬрд╛ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ.
  • рджреБрд╕рд░рд╛ рдореБрджреНрджрд╛: рдиреЛрдбрд╡рд░ рджрд░реНрд╢рд╡рд┐рд▓реЗрд▓реА рд╡реЗрд│ рдЖрд╣реЗ рдПрдХрд▓ рдиреЛрдб рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╡реЗрд│. рдЬрд░ рд╣рд╛ рдиреЛрдб рдПрдХ рдкрд░рд┐рдгрд╛рдо рдореНрд╣рдгреВрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдЭрд╛рд▓рд╛ рдЕрд╕реЗрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЯреЗрдмрд▓ рд░реЗрдХреЙрд░реНрдбрджреНрд╡рд╛рд░реЗ рд▓реВрдк рдЕрдиреЗрдХ рд╡реЗрд│рд╛, рддрд░ рд▓реВрдкрдЪреА рд╕рдВрдЦреНрдпрд╛тАФрдпрд╛ рдиреЛрдбрдЪреЗ рдЪрдХреНрд░тАФрдкреНрд▓реЕрдирдордзреНрдпреЗ рд╡рд╛рдврддреЗ. рдкрд░рдВрддреБ рдЕрдгреВ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рд╡реЗрд│ рд╕реНрд╡рддрдГрдЪ рдпреЛрдЬрдиреЗрдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдиреЗ рд╕рдорд╛рди рд░рд╛рд╣рддреЗ. рдореНрд╣рдгрдЬреЗрдЪ, рд╣рд╛ рдиреЛрдб рдПрдХреВрдг рдХрд┐рддреА рдХрд╛рд│ рдЪрд╛рд▓рд▓рд╛ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдЧреЛрд╖реНрдЯ рджреБрд╕рд░реНтАНрдпрд╛рдиреЗ рдЧреБрдгрд╛рдХрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - рдкреБрдиреНрд╣рд╛, "рддреБрдордЪреНрдпрд╛ рдбреЛрдХреНрдпрд╛рдд."

рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд, "рд╕рд░реНрд╡рд╛рдд рдХрдордХреБрд╡рдд рджреБрд╡рд╛ рдХреЛрдг рдЖрд╣реЗ?" рд╣реЗ рд╕рдордЬреВрди рдШреНрдпрд╛. рдЬрд╡рд│рдЬрд╡рд│ рдЕрд╢рдХреНрдп. рдореНрд╣рдгреВрди, рдЕрдЧрджреА рд╡рд┐рдХрд╕рдХ рд╕реНрд╡рддрдГ "рдореЕрдиреНрдпреБрдЕрд▓" рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддрд╛рдд "рдпреЛрдЬрдирд╛ рд╕рдордЬреВрди рдШреЗрдгреЗ рд╣реА рдПрдХ рдХрд▓рд╛ рдЖрд╣реЗ рдЬреА рд╢рд┐рдХрд▓реА рдкрд╛рд╣рд┐рдЬреЗ, рдЕрдиреБрднрд╡рд▓реА рдкрд╛рд╣рд┐рдЬреЗ...".

рдкрд░рдВрддреБ рдЖрдордЪреНрдпрд╛рдХрдбреЗ 1000 рдбреЗрд╡реНрд╣рд▓рдкрд░ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреБрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рд╣рд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдВрдЧреВ рд╢рдХрдд рдирд╛рд╣реА. рдореА, рддреВ, рддреНрдпрд╛рд▓рд╛ рдорд╛рд╣реАрдд рдЖрд╣реЗ, рдкрдг рддрд┐рдерд▓реНрдпрд╛ рдХреЛрдгрд╛рд▓рд╛ рддрд░реА рдЖрддрд╛ рдорд╛рд╣реАрдд рдирд╛рд╣реА. рдХрджрд╛рдЪрд┐рдд рддреЛ рд╢рд┐рдХреЗрд▓, рдХрд┐рдВрд╡рд╛ рдХрджрд╛рдЪрд┐рдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреНрдпрд╛рд▓рд╛ рдЖрддрд╛ рдХрд╛рдо рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - рдЖрдгрд┐ рд╣рд╛ рдЕрдиреБрднрд╡ рддреНрдпрд╛рд▓рд╛ рдХреЛрдареЗ рдорд┐рд│реЗрд▓?

рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рдирдЪреА рдпреЛрдЬрдирд╛ рдХрд░рд╛

рддреНрдпрд╛рдореБрд│реЗ рдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдирд╛ рддреЛрдВрдб рджреНрдпрд╛рдпрдЪреЗ рдЕрд╕реЗрд▓ рддрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдпрд╛рдЪреА рдЬрд╛рдгреАрд╡ рдЭрд╛рд▓реА рдпреЛрдЬрдиреЗрдЪреЗ рдЪрд╛рдВрдЧрд▓реЗ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди. [рд▓реЗрдЦ]

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдЖрдореНрд╣реА рдкреНрд░рдердо "рдмрд╛рдЬрд╛рд░рд╛рддреВрди" рдЧреЗрд▓реЛ - рдХрд╛рдп рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗ рддреЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдкрд╛рд╣реВ рдпрд╛.

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

  • рдиреЛрдбрдЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реЗрд│
  • рд╕рдВрдкреВрд░реНрдг рдЙрдкрд╡реГрдХреНрд╖рд╛рд╕рд╛рдареА рдПрдХреВрдг рд╡реЗрд│
  • рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдиреЛрдВрджреАрдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЬреА рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдпрджреГрд╖реНрдЯреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реЛрддреА
  • рдиреЛрдб рд╢рд░реАрд░ рд╕реНрд╡рддрдГ

рдпрд╛ рд╕реЗрд╡реЗрдордзреНрдпреЗ рджреБрд╡реНрдпрд╛рдВрдЪреЗ рд╕рдВрдЧреНрд░рд╣рдг рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рджреЗрдЦреАрд▓ рдЖрд╣реЗ. рддреБрдореНрд╣реА рддреБрдордЪреА рдпреЛрдЬрдирд╛ рддрд┐рдереЗ рдлреЗрдХрд▓реА рдЖрдгрд┐ рдореНрд╣рдгрд╛рд▓рд╛: "рдЕрд░реЗ, рд╡рд╛рд╕реНрдпрд╛, рд╣реА рдПрдХ рд▓рд┐рдВрдХ рдЖрд╣реЗ, рддрд┐рдереЗ рдХрд╛рд╣реАрддрд░реА рдЧрдбрдмрдб рдЖрд╣реЗ."

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдкрдг рд▓рд╣рд╛рди рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд.

рдкреНрд░рдердо, рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд тАЬрдХреЙрдкреА-рдкреЗрд╕реНрдЯтАЭ. рддреБрдореНрд╣реА рд▓реЙрдЧрдЪрд╛ рдПрдХ рддреБрдХрдбрд╛ рдШреНрдпрд╛, рддреЛ рддрд┐рдереЗ рдЪрд┐рдХрдЯрд╡рд╛ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛.

рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рд╡рд╛рдЪрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдЪреЗ рдХреЛрдгрддреЗрд╣реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╛рд╣реА тАФ рдЖрдЙрдЯрдкреБрдЯ рд╕рдорд╛рди рдмрдлрд░ EXPLAIN (ANALYZE, BUFFERS), рдЖрдореНрд╣рд╛рд▓рд╛ рддреЗ рдпреЗрдереЗ рджрд┐рд╕рдд рдирд╛рд╣реА. рддреНрдпрд╛рдВрдирд╛ рдХрд╕реЗ рд╡реЗрдЧрд│реЗ рдХрд░рд╛рдпрдЪреЗ, рддреНрдпрд╛рдВрдирд╛ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрд░реЛрдмрд░ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рд╛рд╡реЗ рд╣реЗ рддреНрдпрд╛рд▓рд╛ рдлрдХреНрдд рдорд╛рд╣рд┐рдд рдирд╛рд╣реА. рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рднрд░рдкреВрд░ рдбреЗрдЯрд╛ рд╡рд╛рдЪрдд рдЕрд╕рд╛рд▓ рдЖрдгрд┐ рддреБрдореНрд╣реА рдбрд┐рд╕реНрдХ рдЖрдгрд┐ рдореЗрдорд░реА рдХреЕрд╢реЗрдЪреЗ рдЪреБрдХреАрдЪреЗ рд╡рд╛рдЯрдк рдХрд░рдд рдЖрд╣рд╛рдд рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдпреЗрдд рдЕрд╕реЗрд▓, рддреЗрд╡реНрд╣рд╛ рд╣реА рдорд╛рд╣рд┐рддреА рдЦреВрдк рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдЕрд╕рддреЗ.

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

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

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

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

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдордЧ рдЖрдордЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реЗ рдХреА рд╕реНрд╡рддрдГрдЪреЗ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ - рд╣реБрд░реНрд░реЗ! рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╕рдХ рдореНрд╣рдгрддреЛ: "рдЖрддрд╛ рдЖрдореНрд╣реА рдЖрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рд▓рд┐рд╣реВ, рддреЗ рдЦреВрдк рд╕реЛрдкреЗ рд╣реЛрдИрд▓!"

рдЖрдореНрд╣реА рд╡реЗрдм рд╕реЗрд╡рд╛рдВрд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдЯреЕрдХ рдШреЗрддрд▓рд╛: Node.js + Express рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдХреЛрд░, рд╕реБрдВрджрд░ рдЖрдХреГрддреНрдпрд╛рдВрд╕рд╛рдареА рдмреВрдЯрд╕реНрдЯреНрд░реЕрдк рдЖрдгрд┐ D3.js рд╡рд╛рдкрд░рд▓реЗ. рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд╛ рдкреВрд░реНрдгрдкрдгреЗ рдиреНрдпрд╛рдпреНрдп рд╣реЛрддреНрдпрд╛ - рдЖрдореНрд╣рд╛рд▓рд╛ 2 рдЖрдард╡рдбреНрдпрд╛рдВрдд рдкрд╣рд┐рд▓рд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдорд┐рд│рд╛рд▓рд╛:

  • рд╕рд╛рдиреБрдХреВрд▓ рдпреЛрдЬрдирд╛ рдкрд╛рд░реНрд╕рд░
    рдореНрд╣рдгрдЬреЗрдЪ, рдЖрддрд╛ рдЖрдореНрд╣реА PostgreSQL рджреНрд╡рд╛рд░реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдпреЛрдЬрдиреЗрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реВ рд╢рдХрддреЛ.
  • рдбрд╛рдпрдиреЕрдорд┐рдХ рдиреЛрдбреНрд╕рдЪреЗ рдпреЛрдЧреНрдп рд╡рд┐рд╢реНрд▓реЗрд╖рдг - CTE рд╕реНрдХреЕрди, InitPlan, SubPlan
  • рдмрдлрд░ рд╡рд┐рддрд░рдгрд╛рдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг - рдореЗрдорд░реАрдордзреВрди рдбреЗрдЯрд╛ рдкреГрд╖реНрдареЗ рдХреБрдареЗ рд╡рд╛рдЪрд▓реА рдЬрд╛рддрд╛рдд, рдХреБрдареЗ рд╕реНрдерд╛рдирд┐рдХ рдХреЕрд╢реЗрдордзреВрди, рдХреБрдареЗ рдбрд┐рд╕реНрдХрд╡рд░реВрди
  • рд╕реНрдкрд╖реНрдЯрддрд╛ рдорд┐рд│рд╛рд▓реА
    рд▓реЙрдЧрдордзреНрдпреЗ рд╣реЗ рд╕рд░реНрд╡ тАЬрдЦрдгрдгреЗтАЭ рдирд╛рд╣реА рддрд░ рдЪрд┐рддреНрд░рд╛рдд рд▓рдЧреЗрдЪ тАЬрдХрдордХреБрд╡рдд рджреБрд╡рд╛тАЭ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рд╕рд┐рдВрдЯреЕрдХреНрд╕ рд╣рд╛рдпрд▓рд╛рдЗрдЯрд┐рдВрдЧрд╕рд╣ рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рдорд┐рд│рд╛рд▓реЗ. рдкрд░рдВрддреБ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдЖрдордЪреЗ рдбреЗрд╡реНрд╣рд▓рдкрд░ рдпрд╛рдкреБрдвреЗ рдпреЛрдЬрдиреЗрдЪреНрдпрд╛ рд╕рдВрдкреВрд░реНрдг рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реАрдд, рддрд░ рд▓рд╣рд╛рди рдпреЛрдЬрдиреЗрд╕рд╣. рд╢реЗрд╡рдЯреА, рдЖрдореНрд╣реА рдЖрдзреАрдЪ рд╕рд░реНрд╡ рд╕рдВрдЦреНрдпрд╛рдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдбрд╛рд╡реАрдХрдбреЗ рдЖрдгрд┐ рдЙрдЬрд╡реАрдХрдбреЗ рдлреЗрдХрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдордзреНрдпрднрд╛рдЧреА рдЖрдореНрд╣реА рдлрдХреНрдд рдкрд╣рд┐рд▓реА рдУрд│ рд╕реЛрдбрд▓реА рдЖрд╣реЗ, рддреЛ рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪрд╛ рдиреЛрдб рдЖрд╣реЗ: рд╕реАрдЯреАрдИ рд╕реНрдХреЕрди, рд╕реАрдЯреАрдИ рдЬрдирд░реЗрд╢рди рдХрд┐рдВрд╡рд╛ рд╕реЗрдХ рд╕реНрдХреЕрди рдХрд╛рд╣реА рдЪрд┐рдиреНрд╣рд╛рдиреБрд╕рд╛рд░.

рд╣реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЖрд╣реЗ рдЬреНрдпрд╛рд▓рд╛ рдЖрдкрдг рдореНрд╣рдгрддреЛ рдпреЛрдЬрдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдЖрдгрдЦреА рдХрд╛рдп рд╕реЛрдпреАрдЪреЗ рдЕрд╕реЗрд▓? рдЖрдордЪреНрдпрд╛ рдПрдХреВрдг рд╡реЗрд│реЗрдЪрд╛ рдХреЛрдгрддрд╛ рд╡рд╛рдЯрд╛ рдХреЛрдгрддреНрдпрд╛ рдиреЛрдбрд▓рд╛ рджрд┐рд▓рд╛ рдЬрд╛рддреЛ рд╣реЗ рдкрд╛рд╣рдгреЗ рд╕реЛрдпреАрдЪреЗ рд╣реЛрдИрд▓ - рдЖрдгрд┐ рдлрдХреНрдд "рддреЗ рдЪрд┐рдХрдЯрд╡рд╛" рдкрд╛рдп рдЪрд╛рд░реНрдЯ.

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

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

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рд╕рд╛рд╣рдЬрд┐рдХрдЪ рддреНрдпрд╛рдд рдХрд╛рд╣реА тАЬрд░реЗрдХтАЭ рдЧреБрдВрддрд▓реЗрд▓реЗ рд╣реЛрддреЗ.

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

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рджреБрд╕рд░рд╛ рдореБрджреНрджрд╛, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓, рдбрд╛рдпрдиреЕрдорд┐рдХ рдиреЛрдбреНрд╕рдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреЗ (рддреНрдпрд╛ рдмрдлрд░) рд╡рд┐рддрд░рдг рдЖрд╣реЗ. рдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрдЪреЗ рдкрд╣рд┐рд▓реЗ 2 рдЖрдард╡рдбреЗ рдЖрдгрд┐ рдЖрдгрдЦреА 4 рдЖрдард╡рдбреЗ рдЦрд░реНрдЪ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ.

рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреА рд╕рдорд╕реНрдпрд╛ рдпреЗрдгреЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ - рдЖрдореНрд╣реА CTE рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдд рдХрд╛рд╣реАрддрд░реА рд╡рд╛рдЪрддреЛ. рдЦрд░рдВ рддрд░, PostgreSQL "рд╕реНрдорд╛рд░реНрдЯ" рдЖрд╣реЗ рдЖрдгрд┐ рддреЗрдереЗ рдереЗрдЯ рдХрд╛рд╣реАрд╣реА рд╡рд╛рдЪрдгрд╛рд░ рдирд╛рд╣реА. рдордЧ рдЖрдореНрд╣реА рддреНрдпрд╛рддреВрди рдкрд╣рд┐рд▓рд╛ рд░реЗрдХреЙрд░реНрдб рдШреЗрддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдЪ CTE рдордзреАрд▓ рд╢рдВрднрд░ рдЖрдгрд┐ рдкрд╣рд┐рд▓рд╛ рд░реЗрдХреЙрд░реНрдб рдШреЗрддреЛ.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдЖрдореНрд╣реА рдпреЛрдЬрдирд╛ рдкрд╛рд╣рддреЛ рдЖрдгрд┐ рд╕рдордЬрддреЛ - рд╣реЗ рд╡рд┐рдЪрд┐рддреНрд░ рдЖрд╣реЗ, рдЖрдордЪреНрдпрд╛рдХрдбреЗ Seq рд╕реНрдХреЕрдирдордзреНрдпреЗ 3 рдмрдлрд░ (рдбреЗрдЯрд╛ рдкреГрд╖реНрдареЗ) тАЬрдЙрдкрднреЛрдЧрд▓реЗрд▓реЗтАЭ рдЖрд╣реЗрдд, рдЖрдгрдЦреА 1 CTE рд╕реНрдХреЕрдирдордзреНрдпреЗ рдЖрдгрд┐ 2 рдЖрдгрдЦреА CTE рд╕реНрдХреЕрдирдордзреНрдпреЗ рдЖрд╣реЗрдд. рдореНрд╣рдгрдЬреЗрдЪ, рдЬрд░ рдЖрдкрдг рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреАрдВрдЪреА рдмреЗрд░реАрдЬ рдХреЗрд▓реА рддрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ 6 рдорд┐рд│рддреАрд▓, рдкрд░рдВрддреБ рдЯреЕрдмреНрд▓реЗрдЯрд╡рд░реВрди рдЖрдкрдг рдлрдХреНрдд 3 рд╡рд╛рдЪрддреЛ! CTE рд╕реНрдХреЕрди рдХреБрдареВрдирд╣реА рдХрд╛рд╣реАрд╣реА рд╡рд╛рдЪрдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдорд░реАрд╕рд╣ рдереЗрдЯ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдореНрд╣рдгрдЬреЗрдЪ, рдпреЗрдереЗ рдХрд╛рд╣реАрддрд░реА рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдЪреБрдХреАрдЪреЗ рдЖрд╣реЗ!

рдЦрд░рдВ рддрд░, рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рдпреЗрдереЗ Seq рд╕реНрдХреЕрдирдХрдбреВрди рд╡рд┐рдирдВрддреА рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реЗрд▓рд╛ рд╕рд░реНрд╡ 3 рдкреГрд╖реНрдард╛рдВрдЪрд╛ рдбреЗрдЯрд╛ рдЖрд╣реЗ, рдкреНрд░рдердо 1 рдиреЗ 1 рд▓рд╛ CTE рд╕реНрдХреЕрдирд╕рд╛рдареА рд╡рд┐рдЪрд╛рд░рд▓реЗ, рдЖрдгрд┐ рдирдВрддрд░ 2 рд░рд╛ рдЖрдгрд┐ рдЖрдгрдЦреА 2 рддреНрдпрд╛рд▓рд╛ рд╡рд╛рдЪрдгреНрдпрд╛рдд рдЖрд▓реЗ. рдореНрд╣рдгрдЬреЗрдЪ рдПрдХреВрдг 3 рдкреГрд╖реНрдареЗ рдбреЗрдЯрд╛ рд╡рд╛рдЪрд▓рд╛ рд╣реЛрддрд╛, 6 рдирд╛рд╣реА.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдЖрдгрд┐ рдпрд╛ рдЪрд┐рддреНрд░рд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рд╕рдордЬрд▓реЗ рдХреА рдпреЛрдЬрдиреЗрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдпрд╛рдкреБрдвреЗ рдЭрд╛рдб рдирд╛рд╣реА, рддрд░ рдлрдХреНрдд рдПрдХ рдкреНрд░рдХрд╛рд░рдЪрд╛ рдЕреЕрд╕рд╛рдпрдХреНрд▓рд┐рдХ рдЖрд▓реЗрдЦ рдЖрд╣реЗ. рдЖрдгрд┐ рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд╕рд╛ рдПрдХ рдЖрдХреГрддреАрдмрдВрдз рдорд┐рд│рд╛рд▓рд╛, рдЬреЗрдгреЗрдХрд░реВрди рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдордЬреЗрд▓ рдХреА "рдкрд╣рд┐рд▓реНрдпрд╛рдВрджрд╛ рдХреБрдареВрди рдХрд╛рдп рдЖрд▓реЗ." рдореНрд╣рдгрдЬреЗрдЪ, рдпреЗрдереЗ рдЖрдореНрд╣реА pg_class рдордзреВрди CTE рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЖрдгрд┐ рддреЗ рджреЛрдирджрд╛ рдорд╛рдЧрд┐рддрд▓реЗ рдЖрдгрд┐ рджреБрд╕рд▒реНрдпрд╛рдВрджрд╛ рдорд╛рдЧрд┐рддрд▓реНрдпрд╛рд╡рд░ рдЖрдордЪрд╛ рдЬрд╡рд│рдЬрд╡рд│ рд╕рд░реНрд╡ рд╡реЗрд│ рд╢рд╛рдЦреЗрдд рдЧреЗрд▓рд╛. рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ рдХреА 2 рд╡реА рдПрдВрдЯреНрд░реА рд╡рд╛рдЪрдгреЗ рд╣реЗ рдЯреЕрдмреНрд▓реЗрдЯрд╡рд░реВрди рдлрдХреНрдд 101рд▓реА рдПрдВрдЯреНрд░реА рд╡рд╛рдЪрдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдЦреВрдк рдорд╣рд╛рдЧ рдЖрд╣реЗ.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдЖрдореНрд╣реА рдереЛрдбрд╛ рд╡реЗрд│ рд╢реНрд╡рд╛рд╕ рд╕реЛрдбрд▓рд╛. рддреЗ рдореНрд╣рдгрд╛рд▓реЗ: тАЬрдЖрддрд╛, рдирд┐рдУ, рддреБрд▓рд╛ рдХреБрдВрдЧ рдлреВ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ! рдЖрддрд╛ рдЖрдордЪрд╛ рдЕрдиреБрднрд╡ рддреБрдордЪреНрдпрд╛ рд╕реНрдХреНрд░реАрдирд╡рд░ рдЖрд╣реЗ. рдЖрддрд╛ рддреБрдореНрд╣реА рддреЗ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛." [рд▓реЗрдЦ]

рд▓реЙрдЧ рдПрдХрддреНрд░реАрдХрд░рдг

рдЖрдордЪреНрдпрд╛ 1000 рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдиреА рд╕реБрдЯрдХреЗрдЪрд╛ рдирд┐:рд╢реНрд╡рд╛рд╕ рд╕реЛрдбрд▓рд╛. рдкрд░рдВрддреБ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдордЬрд▓реЗ рдХреА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдлрдХреНрдд рд╢реЗрдХрдбреЛ "рд▓рдврд╛рдК" рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрд╕рд╛рдареА рд╣реЗ рд╕рд░реНрд╡ "рдХреЙрдкреА-рдкреЗрд╕реНрдЯ" рдЕрдЬрд┐рдмрд╛рдд рд╕реЛрдпреАрдЪреЗ рдирд╛рд╣реА. рддреЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛рдЪ рдЬрдорд╡рд╛рдпрдЪреЗ рдЖрд╣реЗ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реЗ.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

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

рдкреНрд░рдердо, рддреЗ рдПрдХрд╛рдЪ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рднрд┐рдиреНрди рдпреЛрдЬрдирд╛ рд╡рд╛рдкрд░реВрди рд╕рдорд╛рди рдХреНрд╡реЗрд░реАрд╕ рдирд┐рдпреБрдХреНрдд рдХрд░рддреЗ рднрд┐рдиреНрди QueryIds. рдореНрд╣рдгрдЬреЗрдЪ, рдЖрдкрдг рдкреНрд░рдердо рдХреЗрд▓реЗ рддрд░ SET search_path = '01'; SELECT * FROM user LIMIT 1;рдЖрдгрд┐ рдордЧ SET search_path = '02'; рдЖрдгрд┐ рддреАрдЪ рд╡рд┐рдирдВрддреА, рдирдВрддрд░ рдпрд╛ рдореЙрдбреНрдпреВрд▓рдЪреНрдпрд╛ рдЖрдХрдбреЗрд╡рд╛рд░реАрдордзреНрдпреЗ рднрд┐рдиреНрди рд░реЗрдХреЙрд░реНрдб рдЕрд╕рддреАрд▓ рдЖрдгрд┐ рдореА рдпреЛрдЬрдирд╛ рд╡рд┐рдЪрд╛рд░рд╛рдд рди рдШреЗрддрд╛, рд╡рд┐рд╢реЗрд╖рдд: рдпрд╛ рд╡рд┐рдирдВрддреА рдкреНрд░реЛрдлрд╛рдЗрд▓рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рд╕рд╛рдорд╛рдиреНрдп рдЖрдХрдбреЗрд╡рд╛рд░реА рдЧреЛрд│рд╛ рдХрд░реВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА.

рджреБрд╕рд░рд╛ рдореБрджреНрджрд╛ рдЬреНрдпрд╛рдиреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рддреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рд░реЛрдЦрд▓реЗ рдпреЛрдЬрдирд╛рдВрдЪрд╛ рдЕрднрд╛рд╡. рдореНрд╣рдгрдЬреЗрдЪ рдХреЛрдгрддреАрд╣реА рдпреЛрдЬрдирд╛ рдирд╛рд╣реА, рдлрдХреНрдд рд╡рд┐рдирдВрддреА рдЖрд╣реЗ. рдХрд╛рдп рдордВрдж рд╣реЛрдд рдЖрд╣реЗ рддреЗ рдЖрдореНрд╣реА рдкрд╛рд╣рддреЛ, рдкрдг рдХрд╛ рддреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдордЬрдд рдирд╛рд╣реА. рдЖрдгрд┐ рдпреЗрдереЗ рдЖрдкрдг рд╡реЗрдЧрд╛рдиреЗ рдмрджрд▓рдгрд╛рд▒реНрдпрд╛ рдбреЗрдЯрд╛рд╕реЗрдЯрдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдХрдбреЗ рдкрд░рдд рдпреЗрдК.

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

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рддреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣реА рдХреЙрдкреА-рдкреЗрд╕реНрдЯрд╢реА рд▓рдврд╛ рджреЗрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛ рдЖрдгрд┐ рд▓рд┐рд╣рд╛рдпрд▓рд╛ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА рдЬрд┐рд▓реНрд╣рд╛рдзрд┐рдХрд╛рд░реА.

рдХрд▓реЗрдХреНрдЯрд░ SSH рджреНрд╡рд╛рд░реЗ рдЬреЛрдбрддреЛ, рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╣ рд╕рд░реНрд╡реНрд╣рд░рд╢реА рд╕реБрд░рдХреНрд╖рд┐рдд рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ рдЖрдгрд┐ tail -F рд▓реЙрдЧ рдлрд╛рдЗрд▓рдордзреНтАНрдпреЗ "рдЪрд┐рдХрдЯрддреЗ". рддреНрдпрд╛рдореБрд│реЗ рдпрд╛ рдЕрдзрд┐рд╡реЗрд╢рдирд╛рдд рдЖ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдВрдкреВрд░реНрдг рд▓реЙрдЧ рдлрд╛рдЗрд▓рдЪрд╛ рд╕рдВрдкреВрд░реНрдг "рдорд┐рд░рд░" рдорд┐рд│реЗрд▓, рдЬреЗ рд╕рд░реНрд╡реНрд╣рд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рддреЗ. рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реАрд▓ рд▓реЛрдб рд╕реНрд╡рддрдГрдЪ рдХрдореА рдЖрд╣реЗ, рдХрд╛рд░рдг рдЖрдореНрд╣реА рддреЗрдереЗ рдХрд╛рд╣реАрд╣реА рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдд рдХрд░рдд рдирд╛рд╣реА, рдЖрдореНрд╣реА рдлрдХреНрдд рд░рд╣рджрд╛рд░реА рдорд┐рд░рд░ рдХрд░рддреЛ.

рдЖрдореНрд╣реА рдЖрдзреАрдЪ Node.js рдордзреНрдпреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд┐рд╣рд╛рдпрд▓рд╛ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рддреНрдпрд╛рдд рдХрд▓реЗрдХреНрдЯрд░ рд▓рд┐рд╣рд┐рдгреЗ рд╕реБрд░реВ рдареЗрд╡рд▓реЗ. рдЖрдгрд┐ рдпрд╛ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдиреЗ рд╕реНрд╡рддрдГрд▓рд╛ рдиреНрдпрд╛рдпреНрдп рдард░рд╡рд▓реЗ рдЖрд╣реЗ, рдХрд╛рд░рдг рдХрдордХреБрд╡рдд рд╕реНрд╡рд░реВрдкрд┐рдд рдордЬрдХреВрд░ рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА JavaScript рд╡рд╛рдкрд░рдгреЗ рдЦреВрдк рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ, рдЬреЗ рд▓реЙрдЧ рдЖрд╣реЗ. рдЖрдгрд┐ рдмреЕрдХрдПрдВрдб рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдореНрд╣рдгреВрди рд╕реНрд╡рддрдГрдЪ Node.js рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рдирд╕рд╣ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рд╕рд╣ рд╕рд╣рдЬ рдЖрдгрд┐ рд╕реЛрдпреАрд╕реНрдХрд░рдкрдгреЗ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

рддреНрдпрд╛рдиреБрд╕рд╛рд░, рдЖрдореНрд╣реА рджреЛрди рдХрдиреЗрдХреНрд╢рди "рд╕реНрдЯреНрд░реЗрдЪ" рдХрд░рддреЛ: рдкреНрд░рдердо рд▓реЙрдЧ рд╕реНрд╡рддрдГ "рдРрдХрдгреЗ" рдЖрдгрд┐ рддреЗ рд╕реНрд╡рддрдГрдХрдбреЗ рдШреЗрдКрди рдЬрд╛рдгреЗ рдЖрдгрд┐ рджреБрд╕рд░реЗ рд╡реЗрд│реЛрд╡реЗрд│реА рдмреЗрд╕рд▓рд╛ рд╡рд┐рдЪрд╛рд░рдгреЗ. "рдкрд░рдВрддреБ рд▓реЙрдЧ рджрд░реНрд╢рд╡рд┐рддреЗ рдХреА oid 123 рд╕рд╣ рдЪрд┐рдиреНрд╣ рдЕрд╡рд░реЛрдзрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ," рдкрд░рдВрддреБ рдпрд╛рдЪрд╛ рдЕрд░реНрде рд╡рд┐рдХрд╛рд╕рдХрд╛рд▓рд╛ рдХрд╛рд╣реА рдЕрд░реНрде рдирд╛рд╣реА рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕рд▓рд╛ рд╡рд┐рдЪрд╛рд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рд╣реЛрдИрд▓, "рддрд░реАрд╣реА OID = 123 рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?" рдЖрдгрд┐ рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╡реЗрд│реЛрд╡реЗрд│реА рдмреЗрд╕рд▓рд╛ рд╡рд┐рдЪрд╛рд░рддреЛ рдХреА рдЖрдореНрд╣рд╛рд▓рд╛ рд╕реНрд╡рддрдГрдмрджреНрджрд▓ рдХрд╛рдп рдорд╛рд╣рд┐рдд рдирд╛рд╣реА.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

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

рд╣реЗ рд╕рд░реНрд╡ рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдореЛрдард╛ рдЖрдгрд┐ рд╕рдХреНрд░рд┐рдп рдЖрд╣реЗ. рдЦрд░рдВ рддрд░, рдЖрдкрдг рдХрд╛рдп рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЛ, рдЖрдкрдг рдХрд╛рдп рд╣рд╛рддрд╛рд│реВ рд╢рдХрддреЛ, рддреЗрдЪ рдЖрдкрдг рд╡рд╛рдкрд░рддреЛ. рдЖрдореНрд╣реА рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдореНрд╣рдгреВрди PostgreSQL рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░рддреЛ. рдЖрдгрд┐ рдСрдкрд░реЗрдЯрд░рдкреЗрдХреНрд╖рд╛ рддреНрдпрд╛рдд рдбреЗрдЯрд╛ "рдУрддрдгреЗ" рдЬрд▓рдж рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА COPY рдЕрдЬреВрди рдирд╛рд╣реА.

рдкрд░рдВрддреБ рдлрдХреНрдд рдбреЗрдЯрд╛ "рдУрддрдгреЗ" рд╣реЗ рдЦрд░реЛрдЦрд░ рдЖрдордЪреЗ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдирд╛рд╣реА. рдХрд╛рд░рдг рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рд╢рдВрднрд░ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рдЕрдВрджрд╛рдЬреЗ 50k рд╡рд┐рдирдВрддреНрдпрд╛ рдЕрд╕рддреАрд▓, рддрд░ рд╣реЗ рджрд░рд░реЛрдЬ 100-150GB рд▓реЙрдЧ рдЬрдирд░реЗрдЯ рдХрд░реЗрд▓. рдореНрд╣рдгреВрди, рдЖрдореНрд╣рд╛рд▓рд╛ рдмреЗрд╕ рдХрд╛рд│рдЬреАрдкреВрд░реНрд╡рдХ "рдХрдЯ" рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрд▓рд╛.

рдкреНрд░рдердо, рдЖрдореНрд╣реА рдХреЗрд▓реЗ рджрд┐рд╡рд╕рд╛ рд╡рд┐рднрд╛рдЬрди, рдХрд╛рд░рдг, рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░, рджрд┐рд╡рд╕рд╛рдВрдордзреАрд▓ рдкрд░рд╕реНрдкрд░рд╕рдВрдмрдВрдзрд╛рдд рдХреЛрдгрд╛рд▓рд╛рд╣реА рд╕реНрд╡рд╛рд░рд╕реНрдп рдирд╛рд╣реА. рдХрд╛рд▓ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЬреЗ рд╣реЛрддреЗ рддреНрдпрд╛рдд рдХрд╛рдп рдлрд░рдХ рдкрдбрддреЛ, рдЬрд░ рддреБрдореНрд╣реА рдЖрдЬ рд░рд╛рддреНрд░реА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдЖрдгрд▓реА - рдЖрдгрд┐ рдЖрдзреАрдЪ рдХрд╛рд╣реА рдирд╡реАрди рдЖрдХрдбреЗрд╡рд╛рд░реА.

рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рдЖрдореНрд╣реА рд╢рд┐рдХрд▓реЛ (рдЬрдмрд░рджрд╕реНрддреА рдХреЗрд▓реА) рд╡рд╛рдкрд░реВрди рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЦреВрдк, рдЦреВрдк рдЬрд▓рдж COPY. рдореНрд╣рдгрдЬреЗ рдлрдХреНрдд рдирд╛рд╣реА COPYрдХрд╛рд░рдг рддреЛ рдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд╡рд╛рди рдЖрд╣реЗ INSERT, рдЖрдгрд┐ рдЖрдгрдЦреА рд╡реЗрдЧрд╡рд╛рди.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

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

рд▓рдХреНрд╖реНрдп рд╕рд╛рд░рдгреА рдЖрдгрд┐ рддреНтАНрдпрд╛рдЪреНтАНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдЪреНтАНрдпрд╛ рдПрдХрд╛ рдиреЛрдВрджреАрдРрд╡рдЬреА, рдЖрдореНтАНрд╣рд╛рд▓рд╛ рддреЗ рд╕рдВрджрд░реНрднрд┐рдд рдЕрд╕рд▓реЗрд▓реНтАНрдпрд╛ рд╕рд░реНрд╡ рд╕рд╛рд░рдгреАрдВрдордзреВрди рд╡рд╛рдЪрдгреНтАНрдпрд╛рдЪрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рдорд┐рд│рддреЛ. рдкрд░рдВрддреБ рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛рдЪреА рдЕрдЬрд┐рдмрд╛рдд рдЧрд░рдЬ рдирд╛рд╣реА - рдЖрдордЪреЗ рдХрд╛рд░реНрдп рдХрдореАрддрдХрдореА рд▓реЛрдбрд╕рд╣ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рд▓рд╡рдХрд░ рдЖрдгрд┐ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рд▓рд╡рдХрд░ рд░реЗрдХреЙрд░реНрдб рдХрд░рдгреЗ рдЖрд╣реЗ. рддрд░ рдПрдлрдХреЗ - рдЦрд╛рд▓реА!

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

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

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

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

рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдордЬрдХреВрд░ - рд╡рд┐рдирдВрддреА, рдпреЛрдЬрдирд╛, рдЯреЗрдореНрдкреНрд▓реЗрдЯ,... рдордзреВрди MD5 рд╡рд╛рдкрд░рдгреЗ рдЕрдЧрджреА рдпреЛрдЧреНрдп рд╣реЛрддреЗ... рдЖрдореНрд╣реА рддреНрдпрд╛рдЪреА рдХрд▓реЗрдХреНрдЯрд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдЧрдгрдирд╛ рдХрд░рддреЛ рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рддрдпрд╛рд░ рдЖрдпрдбреА тАЬрдУрддрддреЛтАЭ. MD5 рдЪреА рд▓рд╛рдВрдмреА рдЖрдгрд┐ рджреИрдирдВрджрд┐рди рд╡рд┐рднрд╛рдЬрди рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдВрднрд╛рд╡реНрдп рдЯрдХреНрдХрд░рд╛рдВрдмрджреНрджрд▓ рдХрд╛рд│рдЬреА рдХрд░реВ рдирдХрд╛.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдкрд░рдВрддреБ рд╣реЗ рд╕рд░реНрд╡ рдкрдЯрдХрди рд░реЗрдХреЙрд░реНрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣рд╛рд▓рд╛ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпреЗрддрдЪ рдмрджрд▓ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ.

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

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

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

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

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдврд│рд▓реЗ рдХреА рдЕрд╢рд╛ рд▓реЛрдб рдкреНрд░реЛрдлрд╛рдЗрд▓рд╕рд╛рдареА, рдмреЕрдЪреЗрд╕рдордзреНрдпреЗ рд░реЗрдХреЙрд░реНрдб рдЧреЛрд│рд╛ рдХреЗрд▓реНрдпрд╛рд╡рд░ рдХреЛрдгрддреЗрд╣реА рдПрдХрддреНрд░реАрдХрд░рдг рд╡рд╛рдИрдЯ рдЖрд╣реЗ. рдХреНрд▓рд╛рд╕рд┐рдХ рд╡рд╛рдИрдЯ рдЖрд╣реЗ INSERT ... VALUES рдЖрдгрд┐ рдЖрдгрдЦреА 1000 рд░реЗрдХреЙрд░реНрдб. рдХрд╛рд░рдг рддреНрдпрд╛ рдХреНрд╖рдгреА рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдореАрдбрд┐рдпрд╛рд╡рд░ рд▓реЗрдЦрдирд╛рдЪреЗ рд╢рд┐рдЦрд░ рдЖрд╣реЗ, рдЖрдгрд┐ рдбрд┐рд╕реНрдХрд╡рд░ рдХрд╛рд╣реАрддрд░реА рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгрд╛рд░реЗ рдЗрддрд░ рдкреНрд░рддреНрдпреЗрдХрдЬрдг рд╡рд╛рдЯ рдкрд╛рд╣рдд рдЕрд╕реЗрд▓.

рдЕрд╢рд╛ рд╡рд┐рд╕рдВрдЧрддреАрдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА, рдлрдХреНрдд рдХрд╛рд╣реАрд╣реА рдПрдХрддреНрд░рд┐рдд рдХрд░реВ рдирдХрд╛, рдЕрдЬрд┐рдмрд╛рдд рдмрдлрд░ рдХрд░реВ рдирдХрд╛. рдЖрдгрд┐ рдЬрд░ рдбрд┐рд╕реНрдХрд╡рд░ рдмрдлрд░рд┐рдВрдЧ рд╣реЛрдд рдЕрд╕реЗрд▓ (рд╕реБрджреИрд╡рд╛рдиреЗ, Node.js рдордзреАрд▓ рд╕реНрдЯреНрд░реАрдо API рддреБрдореНрд╣рд╛рд▓рд╛ рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ) - рд╣реЗ рдХрдиреЗрдХреНрд╢рди рдкреБрдвреЗ рдврдХрд▓реВ рджреНрдпрд╛. рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдЦрд╛рджрд╛ рдЗрд╡реНрд╣реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓ рдХреА рддреЛ рдкреБрдиреНрд╣рд╛ рд╡рд┐рдирд╛рдореВрд▓реНрдп рдЖрд╣реЗ, рддреЗрд╡реНрд╣рд╛ рдЬрдорд╛ рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рд░рд╛рдВрдЧреЗрддреВрди рддреНрдпрд╛рд╡рд░ рд▓рд┐рд╣рд╛. рдЖрдгрд┐ рддреЗ рд╡реНрдпрд╕реНрдд рдЕрд╕рддрд╛рдирд╛, рдкреВрд▓рдордзреВрди рдкреБрдвреАрд▓ рд╡рд┐рдирд╛рдореВрд▓реНрдп рдШреНрдпрд╛ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рд▓рд┐рд╣рд╛.

рдбреЗрдЯрд╛ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧрд╕рд╛рдареА рд╣рд╛ рджреГрд╖реНрдЯреАрдХреЛрди рд╕рд╛рджрд░ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЕрдВрджрд╛рдЬреЗ 4K рд▓реЗрдЦрди рдСрдкреНрд╕ рд╣реЛрддреЗ рдЖрдгрд┐ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдЖрдореНрд╣реА рд▓реЛрдб 4 рдкрдЯ рдХрдореА рдХреЗрд▓рд╛. рдЖрддрд╛ рддреЗ рдирд╡реАрди рдирд┐рд░реАрдХреНрд╖рдг рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдореБрд│реЗ рдЖрдгрдЦреА 6 рдкрдЯ рд╡рд╛рдврд▓реЗ рдЖрд╣реЗрдд - 100MB/s рдкрд░реНрдпрдВрдд. рдЖрдгрд┐ рдЖрддрд╛ рдЖрдореНрд╣реА рдЧреЗрд▓реНрдпрд╛ 3 рдорд╣рд┐рдиреНрдпрд╛рдВрдЪреЗ рд▓реЙрдЧ рд╕реБрдорд╛рд░реЗ 10-15TB рдЪреНрдпрд╛ рд╡реНрд╣реЙрд▓реНрдпреВрдордордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ, рдпрд╛ рдЖрд╢реЗрдиреЗ рдХреА рдХреЗрд╡рд│ рддреАрди рдорд╣рд┐рдиреНрдпрд╛рдВрдд рдХреЛрдгрддрд╛рд╣реА рд╡рд┐рдХрд╛рд╕рдХ рдХреЛрдгрддреАрд╣реА рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рд┐рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕реЗрд▓.

рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдорд╕реНрдпрд╛ рд╕рдордЬрддрд╛рдд

рдкрдг рдлрдХреНрдд рд╣рд╛ рд╕рдЧрд│рд╛ рдбреЗрдЯрд╛ рдЧреЛрд│рд╛ рдХрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ, рдЙрдкрдпреБрдХреНрдд, рд╕рдорд░реНрдкрдХ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдкреБрд░реЗрд╕реЗ рдирд╛рд╣реА - рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдХрд╛рд░рдг рдпрд╛ рджрд░рд░реЛрдЬ рд▓рд╛рдЦреЛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдпреЛрдЬрдирд╛ рдЖрд╣реЗрдд.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдкрд░рдВрддреБ рд▓рд╛рдЦреЛ рд▓реЛрдХ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЖрд╣реЗрдд, рдЖрдкрдг рдкреНрд░рдердо "рд▓рд╣рд╛рди" рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ. рдЖрдгрд┐, рд╕рд░реНрд╡ рдкреНрд░рдердо, рдЖрдкрдг рд╣реА "рдЫреЛрдЯреА" рдЧреЛрд╖реНрдЯ рдХрд╢реА рдЖрдпреЛрдЬрд┐рдд рдХрд░рд╛рд▓ рд╣реЗ рдард░рд╡рд┐рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдЖрдореНрд╣реА рддреАрди рдкреНрд░рдореБрдЦ рдореБрджреНрджреЗ рдУрд│рдЦрд▓реЗ рдЖрд╣реЗрдд:

  • рдХреЛрдг рд╣реА рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рд▓реА
    рдореНрд╣рдгрдЬреЗрдЪ, рдХреЛрдгрддреНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреВрди рддреЗ "рдЖрдЧрдорди" рдЭрд╛рд▓реЗ: рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕, рдмреЕрдХрдПрдВрдб, рдкреЗрдореЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХрд┐рдВрд╡рд╛ рдХрд╛рд╣реАрддрд░реА.
  • рдЬреЗрдереЗ рддреЗ рдШрдбрд▓рдВ
    рдХреЛрдгрддреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░? рдХрд╛рд░рдг рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЦрд╛рд▓реА рдЕрдиреЗрдХ рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕рддреАрд▓ рдЖрдгрд┐ рдЕрдЪрд╛рдирдХ рдПрдХ "рдореВрд░реНрдЦ" рдЭрд╛рд▓рд╛ (рдХрд╛рд░рдг "рдбрд┐рд╕реНрдХ рд╕рдбрд▓реА", "рдореЗрдорд░реА рд▓реАрдХ рдЭрд╛рд▓реА", рдЗрддрд░ рдХрд╛рд╣реА рд╕рдорд╕реНрдпрд╛), рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рд╢реЗрд╖рдд: рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • рдХрд╕реЗ рд╕рдорд╕реНрдпрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░реЗ рдХрд┐рдВрд╡рд╛ рджреБрд╕рд░реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рдкреНрд░рдХрдЯ рд╣реЛрддреЗ

рдЖрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рдирдВрддреА "рдХреЛрдгреА" рдкрд╛рдард╡рд▓реА рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдПрдХ рдорд╛рдирдХ рд╕рд╛рдзрди рд╡рд╛рдкрд░рддреЛ - рд╕рддреНрд░ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рддреЛ: SET application_name = '{bl-host}:{bl-method}'; тАФ рдЖрдореНрд╣реА рд╡рд┐рдирдВрддреА рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рд▓реЙрдЬрд┐рдХ рд╣реЛрд╕реНрдЯрдЪреЗ рдирд╛рд╡ рдЖрдгрд┐ рддреА рд╕реБрд░реВ рдХрд░рдгрд╛рд▒реНрдпрд╛ рдкрджреНрдзрддреАрдЪреЗ рдХрд┐рдВрд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреЗ рдирд╛рд╡ рдкрд╛рдард╡рддреЛ.

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

  • ╨▓╤А╨╡╨╝╤П
  • рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдгрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╛рд╡
  • рд╣реА рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рд▓реЗрд▓реНрдпрд╛ рд╡реНрдпрдХреНрддреАрдЪрд╛ рдЖрдп.рдкреА
  • рдЖрдгрд┐ рдкрджреНрдзрддреАрдЪреЗ рдирд╛рд╡

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдордЧ рдЖрдордЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реЗ рдХреА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рдордзреАрд▓ рдПрдХрд╛ рд╡рд┐рдирдВрддреАрдЪрд╛ рд╕рд╣рд╕рдВрдмрдВрдз рдкрд╛рд╣рдгреЗ рдлрд╛рд░рд╕реЗ рдордиреЛрд░рдВрдЬрдХ рдирд╛рд╣реА. рдЕрд╕реЗ рдирд╛рд╣реА рдХреА рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрд╢реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╕рддреЗ рдЬрд┐рдереЗ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЗрдХрдбреЗ рддрд┐рдХрдбреЗ рддрд┐рддрдХрд╛рдЪ рд╕реНрдХреНрд░реВ рд╣реЛрддреЛ. рдкрд░рдВрддреБ рддреЗ рд╕рдорд╛рди рдЕрд╕рд▓реЗ рддрд░реАрд╣реА, рдпрд╛рдкреИрдХреА рдХреЛрдгрддреЗрд╣реА рд╕рд░реНрд╡реНрд╣рд░ рдкрд╣рд╛.

рддрд░ рдпреЗрдереЗ рдХрдЯ рдЖрд╣реЗ "рдПрдХ рд╕рд░реНрд╡реНрд╣рд░ - рдПрдХ рджрд┐рд╡рд╕" рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рддреЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╕реЗ рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдЖрд▓реЗ.

рдкрд╣рд┐рд▓рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╡рд┐рднрд╛рдЧ рд╕рдорд╛рди рдЖрд╣реЗ "рдирдореБрдирд╛" - рдпреЛрдЬрдиреЗрдЪреНрдпрд╛ рд╕рд╛рджрд░реАрдХрд░рдгрд╛рдЪреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк, рд╕рд░реНрд╡ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рдВрдХреЗрддрдХрд╛рдВрдкрд╛рд╕реВрди рд╕рд╛рдл тАЛтАЛрдХреЗрд▓реЗрд▓реЗ. рджреБрд╕рд░рд╛ рдХрдЯ рд╣рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд┐рдВрд╡рд╛ рдкрджреНрдзрдд рдЖрд╣реЗ рдЖрдгрд┐ рддрд┐рд╕рд░рд╛ рдХрдЯ рд╣рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпреЛрдЬрдирд╛ рдиреЛрдб рдЖрд╣реЗ рдЬреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдорд╕реНрдпрд╛ рдирд┐рд░реНрдорд╛рдг рдЭрд╛рд▓реНрдпрд╛.

рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╡рд░реВрди рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╡рд░ рдЧреЗрд▓реЛ, рддреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рджреЛрди рдлрд╛рдпрджреЗ рдорд┐рд│рд╛рд▓реЗ:

  • рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рд╡рд╕реНрддреВрдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдд рдЕрдиреЗрдХ рдШрдЯ
    рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛рдкреБрдвреЗ рд╣рдЬрд╛рд░реЛ рдкреНрд░рд╢реНрди рдХрд┐рдВрд╡рд╛ рдпреЛрдЬрдирд╛рдВрджреНрд╡рд╛рд░реЗ рдирд╛рд╣реА рддрд░ рдбрдЭрдирднрд░ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕рджреНрд╡рд╛рд░реЗ рд╕рдорд╕реНрдпреЗрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓.
  • рдЯрд╛рдЗрдорд▓рд╛рдЗрди
    рдореНрд╣рдгрдЬреЗрдЪ, рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рднрд╛рдЧрд╛рдд "рддрдереНрдпреЗ" рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░реВрди, рддреБрдореНрд╣реА рджрд┐рд╡рд╕рднрд░рд╛рдд рддреНрдпрд╛рдВрдЪреЗ рд╕реНрд╡рд░реВрдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВ рд╢рдХрддрд╛. рдЖрдгрд┐ рдЗрдереЗ рддреБрдореНрд╣реА рд╕рдордЬреВ рд╢рдХрддрд╛ рдХреА рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рдкреЕрдЯрд░реНрди рдЕрд╕реЗрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддрд╛рд╕рд╛рддреВрди рдПрдХрджрд╛, рдкрдг рддреЗ рджрд┐рд╡рд╕рд╛рддреВрди рдПрдХрджрд╛рдЪ рдШрдбрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рддрд░ рддреБрдореНрд╣реА рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ рдХреА рдХрд╛рдп рдЪреВрдХ рдЭрд╛рд▓реА - рд╣реЗ рдХреЛрдгреА рдХреЗрд▓реЗ рдЖрдгрд┐ рдХрд╛, рдХрджрд╛рдЪрд┐рдд рддреЗ рдпреЗрдереЗ рдЕрд╕рд╛рд╡реЗ рдХрд░реВ рдирдпреЗ. рд╣реА рджреБрд╕рд░реА рдЕ-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ, рдкреВрд░реНрдгрдкрдгреЗ рджреГрд╢реНрдп, рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рдЪреА рдкрджреНрдзрдд рдЖрд╣реЗ.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рдЙрд░реНрд╡рд░рд┐рдд рдкрджреНрдзрддреА рдЖрдореНрд╣реА рдпреЛрдЬрдиреЗрддреВрди рдХрд╛рдврд▓реЗрд▓реНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рдХрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗрдд: рдЕрд╕рд╛ рдирдореБрдирд╛ рдХрд┐рддреА рд╡реЗрд│рд╛ рдЖрд▓рд╛, рдПрдХреВрдг рдЖрдгрд┐ рд╕рд░рд╛рд╕рд░реА рд╡реЗрд│, рдбрд┐рд╕реНрдХрд╡рд░реВрди рдХрд┐рддреА рдбреЗрдЯрд╛ рд╡рд╛рдЪрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрдгрд┐ рдореЗрдорд░реАрдордзреВрди рдХрд┐рддреА...

рдХрд╛рд░рдг, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдкрдг рд╣реЛрд╕реНрдЯрд╕рд╛рдареА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреГрд╖реНрдард╛рд╡рд░ рдЖрд▓рд╛рдд, рдкрд╣рд╛ - рдХрд╛рд╣реАрддрд░реА рдбрд┐рд╕реНрдХрд╡рд░ рдЦреВрдк рд╡рд╛рдЪреВ рд▓рд╛рдЧрд▓реЗ рдЖрд╣реЗ. рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реАрд▓ рдбрд┐рд╕реНрдХ рддреЗ рд╣рд╛рддрд╛рд│реВ рд╢рдХрдд рдирд╛рд╣реА - рддреНрдпрд╛рддреВрди рдХреЛрдг рд╡рд╛рдЪрддреЗ?

рдЖрдгрд┐ рддреБрдореНрд╣реА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реНрддрдВрднрд╛рдиреБрд╕рд╛рд░ рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреБрдореНрд╣реА рдЖрддреНрддрд╛ рдХрд╛рдп рд╣рд╛рддрд╛рд│рд╛рд▓ рддреЗ рдард░рд╡реВ рд╢рдХрддрд╛ - рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд┐рдВрд╡рд╛ рдбрд┐рд╕реНрдХрд╡рд░реАрд▓ рднрд╛рд░ рдХрд┐рдВрд╡рд╛ рдПрдХреВрдг рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛... рдЖрдореНрд╣реА рддреЗ рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рд▓реЗ, "рд╢реАрд░реНрд╖" рдкрд╛рд╣рд┐рд▓реЗ, рддреЗ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реЗ рдЖрдгрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдЖрдгрд▓реА.
[рд╡реНрд╣рд┐рдбрд┐рдУ рд╡реНрдпрд╛рдЦреНрдпрд╛рди]

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

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

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

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

рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдкреНрд▓реЗрдЯрд╡рд░ рдпреЛрдЧреНрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд╛рд╣реА, рддреБрдореНрд╣реА рддреНрдпрд╛рд▓рд╛ рд╡рд┐рдирдВрддреА рдХрд░рддрд╛, рддреА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдЪреНрдпрд╛ рдкреБрдвреЗ рдЙрдбрддреЗ, Seq рд╕реНрдХреЕрдирдордзреНрдпреЗ рдпреЗрддреЗ... рддреБрдореНрд╣реА рдПрдХ рд╕реЛрдбреВрди рд╕рд░реНрд╡ рд░реЗрдХреЙрд░реНрдб рдлрд┐рд▓реНрдЯрд░ рдХреЗрд▓реЗ рдЖрд╣реЗрдд. рддреБрдореНрд╣рд╛рд▓рд╛ рджрд░рд░реЛрдЬ 100M рдлрд┐рд▓реНрдЯрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд░реЗрдХреЙрд░реНрдбрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЖрд╣реЗ? рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд░реЛрд▓ рдЕрдк рдХрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рдирд╛рд╣реА рдХрд╛?

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

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

рдкреНрд░рд╢реНрди рд▓рд┐рд╣рд┐рдгрд╛рд▒реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рдХрджрд╛рдЪрд┐рдд рдпрд╛ рдкреЕрдЯрд░реНрдирдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрд▓рд╛ рдЕрд╕реЗрд▓: "рдорд▓рд╛ рд╡рд╕реНрдпрд╕рд╛рдареА рд╢реЗрд╡рдЯрдЪреА рдСрд░реНрдбрд░ рджреНрдпрд╛, рддрд┐рдЪреА рддрд╛рд░реАрдЦ." рдЖрдгрд┐ рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рддрд╛рд░рдЦреЗрдиреБрд╕рд╛рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдирд╕реЗрд▓ рдХрд┐рдВрд╡рд╛ рддреБрдореНрд╣реА рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдд рддрд╛рд░реАрдЦ рдирд╕реЗрд▓, рддрд░ рддреБрдореНрд╣реА рдЕрдЧрджреА рддреНрдпрд╛рдЪ "рд░реЗрдХ" рд╡рд░ рдкрд╛рдКрд▓ рдЯрд╛рдХрд╛.

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

рдкрд░рд┐рдгрд╛рдореА, рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕрдиреБрднрд╡рд╛рдЪреЗ рдкреНрд░рдорд╛рдг рдЖрдгрд┐ рдЖрддрд╛ рд▓рдХреНрд╖рдгреАрдп рдШрдЯ рдЭрд╛рд▓реА рдЖрд╣реЗ. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╣реЗ рдЕрд╕реЗрдЪ рд╕рд╛рдзрди рдЖрд╣реЗ.

PostgreSQL рдХреНрд╡реЗрд░реАрдЪреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрд╡реНрд╣ (рдЯреЗрдиреНрд╕рд░)

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛