рдорд╛рдЭреНрдпрд╛ рдорддреЗ, рдорд╛рдЧреАрд▓ рд░рд┐рд▓реАрдЭрдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, PostgreSQL 12 рдордзреНрдпреЗ рдПрдХ рдХрд┐рдВрд╡рд╛ рджреЛрди рдХреНрд░рд╛рдВрддрд┐рдХрд╛рд░рдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдирд╛рд╣реАрдд (рдЬрд╕реЗ рд╡рд┐рднрд╛рдЬрди рдХрд┐рдВрд╡рд╛ рдХреНрд╡реЗрд░реА рд╕рдорд╛рдВрддрд░). рдореА рдПрдХрджрд╛ рд╡рд┐рдиреЛрдж рдХреЗрд▓рд╛ рд╣реЛрддрд╛ рдХреА PostgreSQL 12 рдЪреЗ рдореБрдЦреНрдп рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░рддрд╛ рдЖрд╣реЗ. рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рд╡реНрдпрд╡рд╕рд╛рдпрд╛рдЪрд╛ рдЧрдВрднреАрд░ рдбреЗрдЯрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗрдЪ рд╣рд╡реЗ рдЕрд╕рддреЗ рдХрд╛?
рдкрд░рдВрддреБ PostgreSQL 12 рддрд┐рдереЗрдЪ рдерд╛рдВрдмрдд рдирд╛рд╣реА: рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рд╕реБрдзрд╛рд░рдгрд╛рдВрд╕рд╣, рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реА рдХрд╛рдордЧрд┐рд░реА рдХрд░рддреАрд▓, рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рдЕрдкрдЧреНрд░реЗрдб рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ!
(рдареАрдХ рдЖрд╣реЗ, рдХрджрд╛рдЪрд┐рдд рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░рд╛, рдкрд░рдВрддреБ рдпрд╛ рдкреНрд░рдХрд╛рд╢рдирд╛рдд рддреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдкреВрд░реНрд╡реАрд╕рд╛рд░рдЦреЗ рднрд┐рддреАрджрд╛рдпрдХ рдирд╛рд╣реА.)
PostgreSQL рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдгреЗ рдЖрдгрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЧрдбрдмрдб рди рдХрд░рддрд╛ рддрд╛рдмрдбрддреЛрдм рд▓рдХреНрд╖рдгреАрдп рд╕реБрдзрд╛рд░рдгрд╛рдВрдЪрд╛ рдЖрдирдВрдж рдШреЗрдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рд╣реЛрдИрд▓. рдХрд╛рд╣реА рд╡рд░реНрд╖рд╛рдВрдкреВрд░реНрд╡реА, рдореА PostgreSQL 9.4 рд╡рд░реВрди PostgreSQL 10 рдордзреАрд▓ рдЕрдкрдЧреНрд░реЗрдбрдЪреЗ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХреЗрд▓реЗ рдЖрдгрд┐ PostgreSQL 10 рдордзреАрд▓ рд╕реБрдзрд╛рд░рд┐рдд рдХреНрд╡реЗрд░реА рд╕рдорд╛рдВрддрд░рддреЗрдореБрд│реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪрд╛ рд╡реЗрдЧ рдХрд╕рд╛ рд╡рд╛рдврд▓рд╛ рддреЗ рдкрд╛рд╣рд┐рд▓реЗ. рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдореНрд╣рдгрдЬреЗ, рдорд╛рдЭреНрдпрд╛рдХрдбреВрди рдЬрд╡рд│рдЬрд╡рд│ рдХрд╛рд╣реАрд╣реА рдЖрд╡рд╢реНрдпрдХ рдирд╡реНрд╣рддреЗ (рдлрдХреНрдд рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкреЕрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рд╛. max_parallel_workers
).
рд╕рд╣рдордд рдЖрд╣реЗ, рдЬреЗрд╡реНрд╣рд╛ рдЕрдкрдЧреНрд░реЗрдб рдирдВрддрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рддреЗ рд╕реЛрдпреАрдЪреЗ рдЕрд╕рддреЗ. рдЖрдгрд┐ рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдЦреВрд╢ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЦреВрдк рдкреНрд░рдпрддреНрди рдХрд░рддреЛ, рдХрд╛рд░рдг PostgreSQL рдордзреНрдпреЗ рддреЗ рдЕрдзрд┐рдХрд╛рдзрд┐рдХ рдЖрд╣реЗрдд.
рддрд░ PostgreSQL 12 рд╡рд░ рд╕рд╛рдзреЗ рдЕрдкрдЧреНрд░реЗрдб рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╕реЗ рдЖрдирдВрджрд┐рдд рдХрд░реВ рд╢рдХрддреЗ? рдореА рдЖрддрд╛ рд╕рд╛рдВрдЧреЗрди.
рдкреНрд░рдореБрдЦ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕реБрдзрд╛рд░рдгрд╛
рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧрд╢рд┐рд╡рд╛рдп рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╛рд░ рджреВрд░ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА. рддреБрдореНрд╣реА рдорд╛рд╣рд┐рддреА рдкрдЯрдХрди рдХрд╢реА рд╢реЛрдзреВ рд╢рдХрддрд╛? PostgreSQL рдЪреА рдореВрд▓рднреВрдд рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкреНрд░рдгрд╛рд▓реА рдореНрд╣рдгрддрд╛рдд
рдЖрдореНрд╣реА рдлрдХреНрдд рдСрдкрд░реЗрдЯрд░ рд╡рд╛рдкрд░рддреЛ CREATE INDEX ON some_table (some_column)
, рдЖрдгрд┐ PostgreSQL рдЖрдореНрд╣реА рд╕рддрдд рдореВрд▓реНрдпреЗ рдШрд╛рд▓рдд рдЕрд╕рддрд╛рдирд╛, рдЕрдкрдбреЗрдЯ рдХрд░рдд рдЕрд╕рддрд╛рдирд╛ рдЖрдгрд┐ рд╣рдЯрд╡рддрд╛рдирд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЕрджреНрдпрдпрд╛рд╡рдд рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдмрд░реЗрдЪ рдХрд╛рдо рдХрд░рддреЗ. рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕реНрд╡рддрдГрдЪ рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдЬрдгреВ рдЬрд╛рджреВрдиреЗ.
рдкрдг PostgreSQL рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗ - рддреА
PostgreSQL 12 рдмреА-рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕реЗрд╕рдЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реБрдзрд╛рд░рддреЗ, рдЖрдгрд┐ TPC-C рд╕рд╛рд░рдЦреНрдпрд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд╕рд╣ рдкреНрд░рдпреЛрдЧрд╛рдВрдиреА рдЕрд╕реЗ рджрд╛рдЦрд╡рд▓реЗ рдЖрд╣реЗ рдХреА рдЖрддрд╛ рд╕рд░рд╛рд╕рд░реА 40% рдХрдореА рдЬрд╛рдЧрд╛ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ. рдЖрддрд╛ рдЖрдореНрд╣реА рдХреЗрд╡рд│ рдмреА-рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕ (рдореНрд╣рдгрдЬреЗ рд▓реЗрдЦрди рдСрдкрд░реЗрд╢рдиреНрд╕) рд░рд╛рдЦрдгреНрдпрд╛рддрдЪ рдХрдореА рд╡реЗрд│ рдШрд╛рд▓рд╡рддреЛ, рдкрд░рдВрддреБ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рдд рджреЗрдЦреАрд▓ рдХрдореА рд╡реЗрд│ рдШрд╛рд▓рд╡рддреЛ, рдХрд╛рд░рдг рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЦреВрдкрдЪ рд▓рд╣рд╛рди рдЖрд╣реЗрдд.
рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЬреЗ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рддреНрдпрд╛рдВрдЪреЗ рдЯреЗрдмрд▓ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛рдд - рд╕рд╛рдорд╛рдиреНрдпрдд: OLTP рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ (
рдпрд╛ рдлрд╛рдпрджреНрдпрд╛рдВрдЪрд╛ рд▓рд╛рдн рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рдЕрдкрдЧреНрд░реЗрдб рд╕реНрдЯреНрд░реЕрдЯреЗрдЬреАрдордзреНрдпреЗ рдмреА-рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕реЗрд╕рдЪреА рдкреБрдирд░реНрдмрд╛рдВрдзрдгреА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рдЙрджрд╛.
PostgreSQL 12 рдордзреНрдпреЗ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреНрдпреЗ рдЗрддрд░ рд╕реБрдзрд╛рд░рдгрд╛ рдЖрд╣реЗрдд. рджреБрд╕рд░реА рдЧреЛрд╖реНрдЯ рдЬрд┐рдереЗ рдХрд╛рд╣реА рдЬрд╛рджреВ рд╣реЛрддреА -
PostgreSQL 12 рдиреЗ GIS, GIN рдЖрдгрд┐ SP-GiST рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрджреНрд╡рд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдмрд╛рдВрдзрдгреАрджрд░рдореНрдпрд╛рди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ WAL рд░реЗрдХреЙрд░реНрдбрдЪреЗ рдУрд╡реНрд╣рд░рд╣реЗрдб рдХрдореА рдХреЗрд▓реЗ рдЖрд╣реЗ. рд╣реЗ рдЕрдиреЗрдХ рдореВрд░реНрдд рдлрд╛рдпрджреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ: WAL рд░реЗрдХреЙрд░реНрдб рдХрдореА рдбрд┐рд╕реНрдХ рдЬрд╛рдЧрд╛ рдШреЗрддрд╛рдд, рдЖрдгрд┐ рдбреЗрдЯрд╛ рдЬрд▓рдж рд░рд┐рдкреНрд▓реЗ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬрд╕реЗ рдХреА рдЖрдкрддреНрддреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдХрд┐рдВрд╡рд╛ рдкреЙрдЗрдВрдЯ-рдЗрди-рдЯрд╛рдЗрдо рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рджрд░рдореНрдпрд╛рди. рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ ре▓рдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдЕрд╢рд╛ рдЗрдВрдбреЗрдХреНрд╕реЗрд╕рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреЛрд╕реНрдЯрдЬреАрдЖрдпрдПрд╕-рдЖрдзрд╛рд░рд┐рдд рднреВ-рд╕реНрдерд╛рдирд┐рдХ ре▓рдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЬреАрдЖрдпрдПрд╕рдЯреА рдЗрдВрдбреЗрдХреНрд╕рдЪрд╛ рднрд░рдкреВрд░ рд╡рд╛рдкрд░ рдХрд░рддрд╛рдд), рд╣реЗ рдЖрдгрдЦреА рдПрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЖрд╣реЗ рдЬреЗ рддреБрдордЪреНрдпрд╛рдХрдбреВрди рдХреЛрдгрддреЗрд╣реА рдкреНрд░рдпрддреНрди рди рдХрд░рддрд╛ рдЕрдиреБрднрд╡рд╛рдд рд▓рдХреНрд╖рдгреАрдп рд╕реБрдзрд╛рд░рдгрд╛ рдХрд░реЗрд▓.
рд╡рд┐рднрд╛рдЬрди - рдореЛрдареЗ, рдЪрд╛рдВрдЧрд▓реЗ, рдЬрд▓рдж
PostgreSQL 10 рд╕рд╛рджрд░ рдХреЗрд▓реЗ
PostgreSQL 12 рдордзреНрдпреЗ, рд╡рд┐рднрд╛рдЬрди рдкреНрд░рдгрд╛рд▓реАрдЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд▓рдХреНрд╖рдгреАрдпрд░рд┐рддреНрдпрд╛ рдЪрд╛рдВрдЧрд▓реЗ рдЭрд╛рд▓реЗ рдЖрд╣реЗ, рд╡рд┐рд╢реЗрд╖рдд: рдЯреЗрдмрд▓рдордзреНрдпреЗ рд╣рдЬрд╛рд░реЛ рд╡рд┐рднрд╛рдЬрдиреЗ рдЕрд╕рд▓реНрдпрд╛рд╕. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ рдПрдЦрд╛рджреА рдХреНрд╡реЗрд░реА рд╣рдЬрд╛рд░реЛ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЯреЗрдмрд▓рдордзреАрд▓ рдХрд╛рд╣реА рд╡рд┐рднрд╛рдЬрдирд╛рдВрд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рдд рдЕрд╕реЗрд▓, рддрд░ рддреЗ рдЕрдзрд┐рдХ рд╡реЗрдЧрд╛рдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрдИрд▓. рдХреЗрд╡рд│ рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдХреНрд╡реЗрд░реАрд╕рд╛рдареА рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рд▓реЗ рдЬрд╛рдд рдирд╛рд╣реА. рдПрдХрд╛рдзрд┐рдХ рд╡рд┐рднрд╛рдЬрдиреЗ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЯреЗрдмрд▓рд╡рд░ INSERT рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд┐рддреА рд╡реЗрдЧрд╡рд╛рди рдЖрд╣реЗрдд рд╣реЗ рджреЗрдЦреАрд▓ рддреБрдордЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдпреЗрдИрд▓.
рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ
рдпрд╛ рдлрд╛рдпрджреНрдпрд╛рдВрдореБрд│реЗ рдзрдиреНрдпрд╡рд╛рдж, PostgreSQL рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдгрдЦреА рдореЛрдареЗ рдбреЗрдЯрд╛ рд╕рдВрдЪ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рддреЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рд╕реЛрдкреЗ рдХрд░рддреЗ. рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛рдХрдбреВрди рдХреЛрдгрддреЗрд╣реА рдкреНрд░рдпрддреНрди рдирд╛рд╣реАрдд. ре▓рдкреНрд▓рд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдЕрдиреЗрдХ рд╡рд┐рднрд╛рдЬрдиреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЬрд╕реЗ рдХреА рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ рдЯрд╛рдЗрдо рд╕реАрд░реАрдЬ рдбреЗрдЯрд╛, рдПрдХ рд╕рд╛рдзрд╛ рдЕрдкрдЧреНрд░реЗрдб рддреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдд рд▓рдХреНрд╖рдгреАрдп рд╕реБрдзрд╛рд░рдгрд╛ рдХрд░реЗрд▓.
рд╣реА рдПрдХ "рдЕрдкрдЧреНрд░реЗрдб рдЖрдгрд┐ рдПрдиреНрдЬреЙрдп" рд╕реБрдзрд╛рд░рдгрд╛ рдирд╕рд▓реА рддрд░реА, PostgreSQL 12 рддреБрдореНрд╣рд╛рд▓рд╛ рдкрд░рдХреАрдп рдХреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рдЬреЗ рд╡рд┐рднрд╛рдЬрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЯреЗрдмрд▓реНрд╕рдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рд╡рд┐рднрд╛рдЬрди рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рдЖрдирдВрдж рд╣реЛрддреЛ.
рдкреНрд░рд╢реНрдирд╛рдВрд╕рд╣ рдмрд░реЗрдЪ рдЪрд╛рдВрдЧрд▓реЗ рдЭрд╛рд▓реЗ
рдЬреЗрд╡реНрд╣рд╛
рдорд▓рд╛ рдЕрд╕реЗ рдЖрдврд│рддреЗ рдХреА SQL рдордзреНрдпреЗ рдирд╡рд╢рд┐рдХреНрдпрд╛рдВрдирд╛ CTEs рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рдбрддреЗ; рдЬрд░ рддреБрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрджреНрдзрддреАрдиреЗ рд▓рд┐рд╣рд┐рдд рдЕрд╕рд╛рд▓, рддрд░ рдЕрд╕реЗ рд╡рд╛рдЯрддреЗ рдХреА рддреБрдореНрд╣реА рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рд╣рд┐рдд рдЖрд╣рд╛рдд. рд╡реНрдпрдХреНрддрд┐рд╢рдГ, рдорд▓рд╛ рдпрд╛ рдкреНрд░рд╢реНрдирд╛рдВрдЪрд╛ рд╢реЛрдз рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд╛рдпрд▓рд╛ рдЖрд╡рдбрд▓реЗ рди CTE рдЖрдгрд┐ рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╡рд╛рдврд╡рд╛. рдЖрддрд╛ рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╡реЗрдЧрд│реЗ рдЖрд╣реЗ.
PostgreSQL 12 рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕рд╢рд┐рд╡рд╛рдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░рдЪреЗ CTE рдЗрдирд▓рд╛рдЗрди рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ (SELECT
), рдЬреЗ рд╡рд┐рдирдВрддреАрдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдПрдХрджрд╛рдЪ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рдореА рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ CTE рдкреНрд░рд╢реНрдирд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рдВрдкреИрдХреА рдмрд╣реБрддреЗрдХ рдпрд╛ рд╢реНрд░реЗрдгреАрдд рдпреЗрддрд╛рдд. рд╣реЗ рд╡рд┐рдХрд╕рдХрд╛рдВрдирд╛ рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕ рдорджрдд рдХрд░рддреЗ рдЬреЗ рдЖрддрд╛ рджреНрд░реБрддрдкрдгреЗ рдЪрд╛рд▓рддреЗ.
рд╢рд┐рд╡рд╛рдп, PostgreSQL 12 рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реАрд╣реА рди рдХрд░рддрд╛, SQL рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реНрд╡рддрдГрдЪ рдЕрдиреБрдХреВрд▓ рдХрд░рддреЗ. рдЖрдгрд┐ рдЬрд░реА рдорд▓рд╛ рдЖрддрд╛ рдЕрд╢рд╛ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рд▓реА рддрд░реА, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирд╡рд░ рдХрд╛рд░реНрдп рдХрд░рдд рдЖрд╣реЗ рд╣реЗ рдЫрд╛рди рдЖрд╣реЗ.
рдЬрд╕реНрдЯ-рдЗрди-рдЯрд╛рдЗрдо (JIT) - рдЖрддрд╛ рдбреАрдлреЙрд▓реНрдЯ
рд╕рдорд░реНрдердирд╛рд╕рд╣ PostgreSQL 12 рдкреНрд░рдгрд╛рд▓реАрдВрд╡рд░
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ 12 рдордзреНрдпреЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЬреЗрдЖрдпрдЯреА рд╕рдХреНрд╖рдо рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реНрд╡рддрдГрдЪ рд╕реБрдзрд╛рд░реЗрд▓, рдкрд░рдВрддреБ рдХреНрд╡реЗрд░реА рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдореЛрдЬрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рдЯреНрдпреВрди рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рдХрд╛ рддреЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдореА рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ 11 рдордзреАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рдЪрд╛рдЪрдгреА рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ, рдЬреНрдпрд╛рдиреЗ JIT рд╕рд╛рджрд░ рдХреЗрд▓рд╛.
PostgreSQL 12 рдордзреАрд▓ рдЙрд░реНрд╡рд░рд┐рдд рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреЗ рдХрд╛рдп?
PostgreSQL 12 рдордзреНрдпреЗ рдПрдХ рдЯрди рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрд╣реЗрдд, рдорд╛рдирдХ SQL/JSON рдорд╛рд░реНрдЧ рдЕрднрд┐рд╡реНрдпрдХреНрддреА рд╡рд╛рдкрд░реВрди JSON рдбреЗрдЯрд╛ рддрдкрд╛рд╕рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддреЗрдкрд╛рд╕реВрди рддреЗ рдкреЕрд░рд╛рдореАрдЯрд░рд╕рд╣ рдмрд╣реБ-рдШрдЯрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рдкрд░реНрдпрдВрдд clientcert=verify-full
, рд╕реНрддрдВрдн рдЖрдгрд┐ рдмрд░реЗрдЪ рдХрд╛рд╣реА рддрдпрд╛рд░ рдХреЗрд▓реЗ. рд╡реЗрдЧрд│реНрдпрд╛ рдкреЛрд╕реНрдЯрд╕рд╛рдареА рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ.
PostgreSQL 10 рдкреНрд░рдорд╛рдгреЗ, PostgreSQL 12 рдЕрдкрдЧреНрд░реЗрдб рдирдВрддрд░ рд▓рдЧреЗрдЪрдЪ рдПрдХреВрдг рдХрд╛рдордЧрд┐рд░реА рд╕реБрдзрд╛рд░реЗрд▓. рддреБрдордЪрд╛, рдЕрд░реНрдерд╛рддрдЪ, рддреБрдордЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдорд╛рд░реНрдЧ рдЕрд╕реВ рд╢рдХрддреЛ - рд╕реБрдзрд╛рд░рдгрд╛ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдЙрддреНрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реАрд╡рд░ рд╕рдорд╛рди рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рдЪрд╛рдЪрдгреА рдШреНрдпрд╛, рдЬрд╕реЗ рдореА PostgreSQL 10 рд╕реЛрдмрдд рдХреЗрд▓реЗ. PostgreSQL 12 рдорд╛рдЭреНрдпрд╛ рдЕрдкреЗрдХреНрд╖реЗрдкреЗрдХреНрд╖рд╛ рдЖрдзреАрдЪ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдЕрд╕рд▓реЗ рддрд░реАрд╣реА, рдЪрд╛рдЪрдгреА рдХрд░рдгреНрдпрд╛рдд рдЖрд│рд╢реА рд╣реЛрдК рдирдХрд╛. рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЙрддреНрдкрд╛рджрдирд╛рдд рд╕реЛрдбрдгреНрдпрд╛рдкреВрд░реНрд╡реА рддреНрдпрд╛рдВрдирд╛ рдкреВрд░реНрдгрдкрдгреЗ рддрдкрд╛рд╕рд╛.
рд╕реНрддреНрд░реЛрдд: www.habr.com