PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

рдкреНрд░рддрд┐рд╡реЗрджрдирд▓реЗ рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗ рдХреЗрд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрджрдЫ SQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬрдм рддреНрдпрд╣рд╛рдБ рдкреНрд░рддрд┐ рджрд┐рди рд▓рд╛рдЦреМрдВ рд╣реБрдиреНрдЫрдиреН, рд░ рддреНрдпрд╣рд╛рдБ рд╕рдпреМрдВ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░рд┐рдПрдХреЛ PostgreSQL рд╕рд░реНрднрд░рд╣рд░реВ рдЫрдиреНред

рдХреБрди рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рдорд╛рдзрд╛рдирд╣рд░реВрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рдпрд╕реНрддреЛ рдорд╛рддреНрд░рд╛рд▓рд╛рдИ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рд░ рдпрд╕рд▓реЗ рдХрд╕рд░реА рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рдЬреАрд╡рдирд▓рд╛рдИ рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫ?


рдХрд╕рд▓рд╛рдИ рдЪрд╛рд╕реЛ рдЫ? рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд░ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдХреВрд▓рди рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг SQL рдкреНрд░рд╢реНрдирд╣рд░реВ рд░ PostgreSQL рдорд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ DBA рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди - рддрдкрд╛рдИрдВ рдкрдирд┐ рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд▓реЗрдЦрд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрдвреНрдиреБрд╣реЛрд╕реН рдпрд╕ рд╡рд┐рд╖рдпрдорд╛ред

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)
рдореЗрд░реЛ рдирд╛рдо Kirill Borovikov рд╣реЛ, рдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрдЫреБ рдЯреЗрдиреНрд╕рд░ рдХрдореНрдкрдиреАред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рдо рд╣рд╛рдореНрд░реЛ рдХрдореНрдкрдиреАрдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдЫреБред

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

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╣рд╛рдореНрд░рд╛ рд▓рд╛рдЦреМрдВ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЯреЗрдиреНрд╕рд░ рд╣реЛ VLSI рд╣рд╛рдореНрд░реЛ рдЖрд╡реЗрджрди рд╣реЛ: рдХрд░реНрдкреЛрд░реЗрдЯ рд╕рд╛рдорд╛рдЬрд┐рдХ рд╕рдЮреНрдЬрд╛рд▓, рднрд┐рдбрд┐рдпреЛ рд╕рдЮреНрдЪрд╛рд░рдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ, рдЖрдиреНрддрд░рд┐рдХ рд░ рдмрд╛рд╣реНрдп рдХрд╛рдЧрдЬрд╛рдд рдкреНрд░рд╡рд╛рд╣рдХрд╛ рд▓рд╛рдЧрд┐, рд▓реЗрдЦрд╛ рд░ рдЧреЛрджрд╛рдорд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд▓реЗрдЦрд╛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ,... рдЕрд░реНрдерд╛рддреН, рдПрдХреАрдХреГрдд рд╡реНрдпрд╛рдкрд╛рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирдХрд╛ рд▓рд╛рдЧрд┐ рдпрд╕реНрддреЛ "рдореЗрдЧрд╛-рдХрдореНрдмрд╛рдЗрди", рдЬрд╕рдорд╛ резрежреж рднрдиреНрджрд╛ рдмрдвреА рдлрд░рдХ рдЫрдиреНред рдЖрдиреНрддрд░рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВред

рддрд┐рдиреАрд╣рд░реВ рд╕рдмреИрд▓реЗ рдХрд╛рдо рдЧрд░реНрдЫрдиреН рд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдЫрдиреН рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, рд╣рд╛рдореАрд╕рдБрдЧ рджреЗрд╢рднрд░ 10 рд╡рд┐рдХрд╛рд╕ рдХреЗрдиреНрджреНрд░рд╣рд░реВ рдЫрдиреН, рддрд┐рдиреАрд╣рд░реВрдорд╛ рдердк рдЫрдиреН 1000 рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ.

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ [DBA рдорд╛] рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдХреБрди рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЖрдЙрдБрдЫрдиреН? "рдпрд╣рд╛рдБ рд╣рд╛рдореАрд▓реЗ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рдЧрд░реНрдпреМрдВ, рд░ рд╣рд╛рдореАрд╕рдБрдЧ рд╕рдмреИ рдврд┐рд▓реЛ рдЫ, рд╕рдмреИ рдХреБрд░рд╛ рдЭреБрдиреНрдбрд┐рдПрдХреЛ рдЫ, рдХреЗрд╣рд┐ рднрдЗрд░рд╣реЗрдХреЛ рдЫ ... рдХреЗрд╣рд┐ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рдорд╕реНрдпрд╛!"

рдХрд╛рд░рдгрд╣рд░реВ рд▓рдЧрднрдЧ рд╕рдзреИрдВ рд╕рдорд╛рди рдЫрдиреН:

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

рдпреЛрдЬрдирд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ

...рд░ рд╕рдмреИ рдХреБрд░рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА рдпреЛрдЬрдирд╛ рдЪрд╛рд╣рд┐рдиреНрдЫ! рд╣рд╛рдореАрд▓реЗ рд╕рд░реНрднрд░ рднрд┐рддреНрд░ рдХреЗ рднрдЗрд░рд╣реЗрдХреЛ рдЫ рд╣реЗрд░реНрдиреБ рдкрд░реНрдЫред

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

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

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

рдпрджрд┐ рдпреЛ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдХреЗрд╣рд┐ рдЕрдиреБрд░реЛрдз рддрдкрд╛рдИрд▓реЗ рдмрддрд╛рдЙрдиреБрднрдПрдХреЛ рд╕реАрдорд╛ рднрдиреНрджрд╛ рд▓рд╛рдореЛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ, рдпреЛ рдЧрд░реНрдЫ рдпреЛ рдЕрдиреБрд░реЛрдзрдХреЛ рдпреЛрдЬрдирд╛рдХреЛ "рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ" рд░ рд▓рдЧрдорд╛ рд╕рдБрдЧреИ рд▓реЗрдЦреНрдЫ.

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

рд╕рдмреИ рдареАрдХ рдЫ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ - рддрд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЗ рднрдпреЛ рднрдиреЗрд░ рдХреЗрд╣рд┐ рдкрдирд┐ рд╕реНрдкрд╖реНрдЯ рдЫреИрдиред рд╕рд╛рдорд╛рдиреНрдп рд╕рдордп рдмрд╛рд╣реЗрдХ, рд╣рд╛рдореА рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЗрд╣рд┐ рджреЗрдЦреНрджреИрдиреМрдВред рдХрд┐рдирднрдиреЗ рд╕рд╛рджрд╛ рдкрд╛рдардХреЛ рдпрд╕реНрддреЛ "рднреЗрдбрд╛" рд╣реЗрд░реНрджрд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рджреГрд╢реНрдп рд╣реБрдБрджреИрдиред

рддрд░ рдпреЛ рд╕реНрдкрд╖реНрдЯ рдирднрдП рдкрдирд┐, рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рднрдП рдкрдирд┐, рддреНрдпрд╣рд╛рдБ рдердк рдЖрдзрд╛рд░рднреВрдд рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреН:

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

рдпрд╕реНрддреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, "рд╕рдмреИрднрдиреНрджрд╛ рдХрдордЬреЛрд░ рд▓рд┐рдЩреНрдХ рдХреЛ рд╣реЛ?" рдмреБрдЭреНрдиреБрд╣реЛрд╕реНред рд▓рдЧрднрдЧ рдЕрд╕рдореНрднрд╡ред рддреНрдпрд╕рдХрд╛рд░рдг, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдкрдирд┐ "рдореНрдпрд╛рдиреБрдЕрд▓" рдорд╛ рд▓реЗрдЦреНрдЫрдиреН "рдпреЛрдЬрдирд╛ рдмреБрдЭреНрдиреБ рдПрдЙрдЯрд╛ рдХрд▓рд╛ рд╣реЛ рдЬреБрди рд╕рд┐рдХреНрдиреБ рдкрд░реНрдЫ, рдЕрдиреБрднрд╡...".

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

рдпреЛрдЬрдирд╛ рджреГрд╢реНрдп

рддрд╕рд░реНрде, рд╣рд╛рдореАрд▓реЗ рдорд╣рд╕реБрд╕ рдЧрд░реНрдпреМрдВ рдХрд┐ рдпреА рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрди рд╣рд╛рдореАрд▓реЗ рдЖрд╡рд╢реНрдпрдХ рдЫ рдпреЛрдЬрдирд╛ рдХреЛ рд░рд╛рдореНрд░реЛ рджреГрд╢реНрдп. [рд▓реЗрдЦ]

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

рд╣рд╛рдореА рдкрд╣рд┐рд▓реЗ "рдмрдЬрд╛рд░ рдорд╛рд░реНрдлрдд" рдЧрдпреМрдВ - рдХреЗ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреЗрд░ рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рд╣реЗрд░реМрдВред

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

  • рдиреЛрдбрдХреЛ рдЖрдлреНрдиреИ рдкреНрд░рд╢реЛрдзрди рд╕рдордп
  • рд╕рдореНрдкреВрд░реНрдг рд╕рдмрдЯреНрд░реАрдХреЛ рд▓рд╛рдЧрд┐ рдХреБрд▓ рд╕рдордп
  • рдкреБрди: рдкреНрд░рд╛рдкреНрдд рднрдПрдХрд╛ рд░реЗрдХрд░реНрдбрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдЬреБрди рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдкрдорд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд┐рдпреЛ
  • рдиреЛрдб рд╢рд░реАрд░ рдЖрдлреИ

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

рддрд░ рд╕рд╛рдирд╛рддрд┐рдирд╛ рд╕рдорд╕реНрдпрд╛ рдкрдирд┐ рдЫрдиреН ред

рдкрд╣рд┐рд▓реЛ, рдареВрд▓реЛ рдорд╛рддреНрд░рд╛рдорд╛ "рдХрдкреА-рдкреЗрд╕реНрдЯ"ред рддрдкрд╛рдИрдВрд▓реЗ рд▓рдЧрдХреЛ рдЯреБрдХреНрд░рд╛ рд▓рд┐рдиреБрд╣реЛрд╕реН, рдпрд╕рд▓рд╛рдИ рддреНрдпрд╣рд╛рдБ рдЯрд╛рдБрд╕реНрдиреБрд╣реЛрд╕реН, рд░ рдлреЗрд░рд┐, рд░ рдлреЗрд░рд┐ред

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

рд╣рд╛рдореАрд▓реЗ рд╡реЗрдм рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдЯреНрдпрд╛рдХ рд▓рд┐рдпреМрдВ: Node.js + Express рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдХреЛрд░, рд╕реБрдиреНрджрд░ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ Bootstrap рд░ 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 рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

рд╣рд╛рдореАрд▓реЗ рдХреЗрд╣реА рдмреЗрд░ рд╢реНрд╡рд╛рд╕ рдЫреЛрдбреНрдпреМрдВред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рднрдиреЗ: "рдЕрдм, рдирд┐рдпреЛ, рддрдкрд╛рдИрд▓рд╛рдИ рдХреБрдЩреНрдЧ рдлреБ рдерд╛рд╣рд╛ рдЫ! рдЕрдм рд╣рд╛рдореНрд░реЛ рдЕрдиреБрднрд╡ рддрдкрд╛рдИрдВрдХреЛ рд╕реНрдХреНрд░рд┐рдирдорд╛ рдЫред рдЕрдм рддрдкрд╛рдИрдВ рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред" [рд▓реЗрдЦ]

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

рд╣рд╛рдореНрд░рд╛ 1000 рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд░рд╛рд╣рддрдХреЛ рд╕рд╛рд╕ рдлреЗрд░реЗред рддрд░ рд╣рд╛рдореАрд▓реЗ рдмреБрдЭреНрдпреМрдВ рдХрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рд╕рдпреМрдВ "рд▓рдбрд╛рдИ" рд╕рд░реНрднрд░рд╣рд░реВ рдорд╛рддреНрд░ рдЫрдиреН, рд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рддрд░реНрдлрдмрд╛рдЯ рдпреЛ рд╕рдмреИ "рдкреНрд░рддрд┐рд▓рд┐рдкрд┐-рдкреЗрд╕реНрдЯ" рдХреБрдиреИ рдкрдирд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫреИрдиред рд╣рд╛рдореАрд▓реЗ рдмреБрдЭреНрдпреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЖрдлреИрдВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреБрдкрд░реНрдЫред

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

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

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐-рдкреЗрд╕реНрдЯ рд▓рдбреНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВ рд░ рд▓реЗрдЦреНрди рдерд╛рд▓реНрдпреМрдВ рд╕orреНрдХрд▓рдирдХрд░реНрддрд╛.

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

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

рддрджрдиреБрд╕рд╛рд░, рд╣рд╛рдореА рджреБрдИ рдЬрдбрд╛рдирд╣рд░реВ "рддрд╛рдиреНрддреНрд░рд┐рдд" рдЧрд░реНрдЫреМрдВ: рдкрд╣рд┐рд▓реЛ рд▓рдЧ рдЖрдлреИрд▓рд╛рдИ "рд╕реБрдиреНрди" рд░ рдпрд╕рд▓рд╛рдИ рдЖрдлреИрдВрдорд╛ рд▓реИрдЬрд╛рди, рд░ рджреЛрд╕реНрд░реЛ рдЖрд╡рдзрд┐рдХ рд░реВрдкрдорд╛ рдЖрдзрд╛рд░ рд╕реЛрдзреНрдиред "рддрд░ рд▓рдЧрд▓реЗ рджреЗрдЦрд╛рдЙрдБрдЫ рдХрд┐ oid 123 рдХреЛ рд╕рд╛рде рд╕рд╛рдЗрди рдмреНрд▓рдХ рдЧрд░рд┐рдПрдХреЛ рдЫ," рддрд░ рдпрд╕рд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдХреЗрд╣рд┐ рдорддрд▓рдм рдЧрд░реНрджреИрди, рд░ рдбрд╛рдЯрд╛рдмреЗрд╕рд▓рд╛рдИ рд╕реЛрдзреНрдиреБ рд░рд╛рдореНрд░реЛ рд╣реБрдиреНрдЫ, "OID = 123 рдХреЗ рд╣реЛ?" рд░ рдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдЖрд╡рдзрд┐рдХ рд░реВрдкрдорд╛ рдЖрдзрд╛рд░рд▓рд╛рдИ рд╕реЛрдзреНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдЖрдлреНрдиреЛ рдмрд╛рд░реЗрдорд╛ рдЕрдЭреИ рдерд╛рд╣рд╛ рдЫреИрдиреМрдВред

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

рдпреЛ рд╕рдмреИ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдбрд╛рдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдареВрд▓реЛ рд░ рд╕рдХреНрд░рд┐рдп рдЫред рд╡рд╛рд╕реНрддрд╡рдорд╛, рд╣рд╛рдореАрд▓реЗ рдХреЗ рдЕрдиреБрдЧрдорди рдЧрд░реНрдЫреМрдВ, рдХреЗрд╕рдБрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рд╣рд╛рдореАрд▓реЗ рдХреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред рд╣рд╛рдореА PostgreSQL рд▓рд╛рдИ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдгрдХреЛ рд░реВрдкрдорд╛ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред рд░ рдЕрдкрд░реЗрдЯрд░ рднрдиреНрджрд╛ рдпрд╕рдорд╛ рдбрд╛рдЯрд╛ "рдЦрдиреНрдпрд╛рдЙрди" рдЫрд┐рдЯреЛ рдХреЗрд╣рд┐ рдЫреИрди COPY рдЕрдЭреИ рдЫреИрдиред

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

рдкрд╣рд┐рд▓реЛ, рд╣рд╛рдореАрд▓реЗ рдЧрд░реНрдпреМрдВ рджрд┐рди рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрди, рдХрд┐рдирдХрд┐, рд╕рдордЧреНрд░рдорд╛, рджрд┐рдирд╣рд░реВ рдмреАрдЪрдХреЛ рд╕рдореНрдмрдиреНрдзрдорд╛ рдХрд╕реИрд▓рд╛рдИ рдЪрд╛рд╕реЛ рдЫреИрдиред рдХреЗ рдлрд░рдХ рдкрд╛рд░реНрдЫ рддрдкрд╛рдИрд╕рдБрдЧ рд╣рд┐рдЬреЛ рдХреЗ рдерд┐рдпреЛ, рдпрджрд┐ рдЖрдЬ рд░рд╛рддрд┐ рддрдкрд╛рдИрд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдиреБрднрдпреЛ - рд░ рдкрд╣рд┐рд▓реЗ рдиреИ рдХреЗрд╣реА рдирдпрд╛рдБ рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВред

рджреЛрд╕реНрд░реЛ, рд╣рд╛рдореАрд▓реЗ рд╕рд┐рдХреЗрдХрд╛ рдерд┐рдпреМрдВ (рдмрд╛рдзреНрдп) рдзреЗрд░реИ, рдзреЗрд░реИ рдЫрд┐рдЯреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓реЗрдЦреНрди COPYред рдЕрд░реНрдерд╛рддреН рдорд╛рддреНрд░ рд╣реЛрдЗрди COPYрдХрд┐рдирднрдиреЗ рдК рднрдиреНрджрд╛ рдЫрд┐рдЯреЛ рдЫ INSERT, рд░ рдЕрдЭ рдЫрд┐рдЯреЛред

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

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

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

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

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

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

рддрд░ рдпреЛ рд╕рдмреИ рдЫрд┐рдЯреЛ рд░реЗрдХрд░реНрдб рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рд░реЗрдХрд░реНрдбрд┐рдЩ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдлреИ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛред

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

рдердк рд░реВрдкрдорд╛, рд╣рд╛рдореАрд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВ рдХрд┐ рдпрд╕реНрддреЛ рд▓реЛрдб рдкреНрд░реЛрдлрд╛рдЗрд▓рдХреЛ рд▓рд╛рдЧрд┐, рдХреБрдиреИ рдкрдирд┐ рдПрдХрддреНрд░реАрдХрд░рдг, рдЬрдм рд░реЗрдХрд░реНрдбрд╣рд░реВ рдмреНрдпрд╛рдЪрд╣рд░реВрдорд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░рд┐рдиреНрдЫ, рдЦрд░рд╛рдм рд╣реБрдиреНрдЫред рдХреНрд▓рд╛рд╕рд┐рдХ рдЦрд░рд╛рдм рдЫ INSERT ... VALUES рд░ рдердк 1000 рд░реЗрдХрд░реНрдбрд╣рд░реВред рдХрд┐рдирднрдиреЗ рддреНрдпрд╕ рдмрд┐рдиреНрджреБрдорд╛ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдорд┐рдбрд┐рдпрд╛рдорд╛ рд▓реЗрдЦрди рд╢рд┐рдЦрд░ рдЫ, рд░ рдбрд┐рд╕реНрдХрдорд╛ рдХреЗрд╣рд┐ рд▓реЗрдЦреНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ рд╕рдмреИрдЬрдирд╛ рдкрд░реНрдЦрд┐рд░рд╣реЗрдХрд╛ рдЫрдиреНред

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

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

рд╣рд╛рдореАрд▓реЗ рд╕рдорд╕реНрдпрд╛ рдмреБрдЭреЗрдХрд╛ рдЫреМрдВ

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

рд╣рд╛рдореАрд▓реЗ рддреАрди рдореБрдЦреНрдп рдмреБрдБрджрд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реЗрдХрд╛ рдЫреМрдВ:

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

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

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

  • ╨▓╤А╨╡╨╝╤П
  • рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд░ рд▓реЗрдирджреЗрди рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВ
  • рдбрд╛рдЯрд╛рдмреЗрд╕ рдирд╛рдо
  • рдпреЛ рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрдиреЗ рд╡реНрдпрдХреНрддрд┐рдХреЛ IP
  • рд░ рд╡рд┐рдзрд┐ рдирд╛рдо

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

рддреНрдпрд╕реИрд▓реЗ рдпрд╣рд╛рдБ рдХрдЯ рдЫ "рдПрдХ рд╕рд░реНрднрд░ - рдПрдХ рджрд┐рди" рдпреЛ рдХреБрдиреИ рдкрдирд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрдд рднрдпреЛред

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

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

рдмрд╛рдБрдХреА рд╡рд┐рдзрд┐рд╣рд░реВ рд╣рд╛рдореАрд▓реЗ рдпреЛрдЬрдирд╛рдмрд╛рдЯ рдирд┐рдХрд╛рд▓реНрдиреЗ рд╕рдВрдХреЗрддрдХрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрдиреН: рдХрддрд┐ рдкрдЯрдХ рдпрд╕реНрддреЛ рдврд╛рдБрдЪрд╛ рднрдпреЛ, рдХреБрд▓ рд░ рдФрд╕рдд рд╕рдордп, рдбрд┐рд╕реНрдХрдмрд╛рдЯ рдХрддрд┐ рдбрд╛рдЯрд╛ рдкрдврд┐рдпреЛ, рд░ рдореЗрдореЛрд░реАрдмрд╛рдЯ рдХрддрд┐...

рдХрд┐рдирднрдиреЗ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдЗрдБ рд╣реЛрд╕реНрдЯрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреГрд╖реНрдардорд╛ рдЖрдЙрдиреБрд╣реБрдиреНрдЫ, рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН - рдХреЗрд╣рд┐ рдбрд┐рд╕реНрдХрдорд╛ рдзреЗрд░реИ рдкрдвреНрди рд╕реБрд░реБ рд╣реБрдБрджреИрдЫред рд╕рд░реНрднрд░рдорд╛ рд░рд╣реЗрдХреЛ рдбрд┐рд╕реНрдХрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди рд╕рдХреНрджреИрди - рдХрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдкрдвреНрдЫ?

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

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

рд╡рд┐рдкрд░рд┐рдд рддрд░рд┐рдХрд╛ рднрдиреЗрдХреЛ рддреБрд░реБрдиреНрддреИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдмрд╛рдЯ рд╣реЗрд░реНрдиреБ рд╣реЛ рдХрд┐ рдпрд╕рд▓реЗ рдХреЗ рдЧрд░реНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдлреНрд░рдиреНрдЯрдПрдиреНрдб рдпреЛ, рдпреЛ, рдпреЛ, рд░ рдпреЛ рдПрдХ рдШрдгреНрдЯрд╛рдорд╛ рдПрдХ рдкрдЯрдХ рд╣реЛ (рд╕рдордпрд░реЗрдЦрд╛рд▓реЗ рдорджреНрджрдд рдЧрд░реНрджрдЫ)ред рд░ рдкреНрд░рд╢реНрди рддреБрд░реБрдиреНрддреИ рдЙрдареНрдЫ: рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рдпреЛ рдПрдХ рдШрдгреНрдЯрд╛рдорд╛ рдПрдХ рдкрдЯрдХ рдХреЗрд╣рд┐ рдЧрд░реНрди рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдХреЛ рдХрд╛рдо рд╣реЛрдЗрди ...

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

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

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

рдкреНрд░рд╢реНрдирд╣рд░реВ рд▓реЗрдЦреНрдиреЗ рд╕рдмреИрд▓реЗ рд╕рд╛рдпрдж рдпреЛ рдврд╛рдБрдЪрд╛рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реЗрдХрд╛ рдЫрдиреН: "рдорд▓рд╛рдИ Vasya рдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреНрддрд┐рдо рдЕрд░реНрдбрд░ рджрд┐рдиреБрд╣реЛрд╕реН, рдпрд╕рдХреЛ рдорд┐рддрд┐ред" рд░ рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдорд┐рддрд┐ рдЕрдиреБрд╕рд╛рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЫреИрди, рд╡рд╛ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрднрдПрдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдорд╛ рдХреБрдиреИ рдорд┐рддрд┐ рдЫреИрди рднрдиреЗ, рддрдм рддрдкрд╛рдИрдВрд▓реЗ рдареНрдпрд╛рдХреНрдХреИ рдЙрд╣реА "рд░реЗрдХ" рдорд╛ рдХрджрдоред

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

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдЕрдиреБрднрд╡рдХреЛ рдорд╛рддреНрд░рд╛ рдЬреБрди рд╕реБрд░реБрдорд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ рд░ рдЕрд╣рд┐рд▓реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдШрдЯреЗрдХреЛ рдЫред рдпреЛ рд╣рд╛рдореАрд╕рдБрдЧ рднрдПрдХреЛ рдЙрдкрдХрд░рдг рд╣реЛред

PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд▓реНрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдиред рдХрд┐рд░рд┐рд▓ рдмреЛрд░реЛрд╡рд┐рдХреЛрдн (рдЯреЗрдиреНрд╕рд░)

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди