PostgreSQL рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдореЗрд░рд╛ рддрд░реАрдХрд╛



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

рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! рдореЗрд░рд╛ рдирд╛рдо рдбрд╛рдпрдордВрдб рд╣реИ рдФрд░ рдЕрдм рдореИрдВ рдПрдХ рд╡рд┐рдзрд┐ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рд╡рд┐рднрд╛рдЬрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реАред

PostgreSql рдореЗрдВ рд╡рд┐рднрд╛рдЬрди


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

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


рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ "рдмрд┐рдХреНрд░реА" рд╕реНрдХреАрдорд╛

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╡рд┐рдкрдХреНрд╖:

- рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ред рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЦрдВрдб рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
- рдЖрдк рдПрдХ рдореМрдЬреВрджрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдПрдХ рдкрд╛рд░реНрдЯреАрд╢рди рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред
- рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╕рдВрд╕реНрдХрд░рдг 11 рдореЗрдВ рдХреЛрдИ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред

рдкреЗрд╢реЗрд╡рд░реЛрдВ:

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

PostgreSql рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ:



1. рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдкреНрд░рд╡реЗрд╢ (INITSITS)
рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ "рджреВрд╕рд░реЗ (рдореВрд▓) рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд"ред рдЙрд╕реА рд╕рдордп, рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрдВрдз рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдбреЗрдЯрд╛ рд╡рд┐рднрд╛рдЬрди рдХреЗ рддрд░реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╕рд╛рд░рдгреА рд╣реИрдВред

рдпрд╣рд╛рдВ рдпрд╣ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдкреНрд░реЛрдлреЗрд╢рдирд▓ pg_pathman рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рд╡рд┐рднрд╛рдЬрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреАред

CREATE TABLE orders_y2010 ( CHECK (log_date >= DATE '2010-01-01) ) INHERITS (orders); 

2. рдШреЛрд╖рдгрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг (рд╡рд┐рднрд╛рдЬрди)

рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдШреЛрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рдорд╛рдзрд╛рди PostgreSql рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 10 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред

 CREATE TABLE orders (log_date date not null, тАж) PARTITION BY RANGE(log_date); 


рдореИрдВрдиреЗ рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЪреБрдирд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдн рджреЗрддрд╛ рд╣реИ - рд╕реНрд╡рднрд╛рд╡, рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ PostgreSQL рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:


рд╕реНрд░реЛрдд

рд▓реЗрдХрд┐рди PostgreSql рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдирд╛ рдЬрд╛рд░реА рд╣реИ, рдФрд░ рд╕рдВрд╕реНрдХрд░рдг 12 рдореЗрдВ рдПрдХ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред рдпрд╣ рдПрдХ рдмрдбрд╝реА рд╕рдлрд▓рддрд╛ рд╣реИред

рдореЗрд░рд╛ рд░рд╛рд╕реНрддрд╛


рдЙрдкрд░реЛрдХреНрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, PL / pgSQL рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЧрдИ рдереА, рдЬреЛ рдореМрдЬреВрджрд╛ рдПрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдирдИ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рднреА рд▓рд┐рдВрдХ "рдлреЗрдВрдХрддрд╛" рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдореМрдЬреВрджрд╛ рдПрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рдЕрд▓рдЧ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдлрд┐рд░ рд╕реЗ рдФрд░ рдкреВрд░реНрд╡рд╡рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИ: рдПрдХ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЯреНрд░рд┐рдЧрд░ рдЯреНрд░рд┐рдЧрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА рд▓рд┐рдВрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛: PostgreSql v.:11 рдФрд░ рдЙрдЪреНрдЪрддрд░ред

рдЕрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
рджреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рд╕рднреА рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред

1. рдореБрдЦреНрдп рдЪреБрдиреМрддреА - рдЗрд╕ рд╕реНрддрд░ рдкрд░ рд╣рдо рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реЗрдХреНрд╢рдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рдПрдХ рдЕрд▓рдЧ рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛:

  call partition_run(); 


2. рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХреЗ рджреМрд░рд╛рди рдпреЛрдЬрдирд╛рдмрджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ:

  call partition_run_jobs(); 


рдХрд╛рд░реНрдп рдХреЛ рдХрдИ рдереНрд░реЗрдб рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдзрд╛рдЧреЗ рдХреА рдЗрд╖реНрдЯрддрдо рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХрд░реАрдм рд╣реИред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ (_pt рд░рд┐рдХреЙрд░реНрдб)



рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдВрджрд░ рд╕реЗ, рдореБрдЦреНрдп рдХреНрд░рд┐рдпрд╛рдПрдБ:

- рдПрдХ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдБ
  perform _partition_create_parent_table(_pt); 

- рдЕрдиреБрднрд╛рдЧ рдмрдирд╛рдПрдВ
  perform _partition_create_child_tables(_pt); 

- рд╕реЗрдХреНрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд░реЗрдВ
  perform _partition_copy_data(_pt); 

- рдкреНрд░рддрд┐рдмрдВрдз (рдиреМрдХрд░реА) рдЬреЛрдбрд╝реЗрдВ
  perform _partition_add_constraints(_pt); 

- рдмрд╛рд╣рд░реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  perform _partition_restore_referrences(_pt); 

- рдЯреНрд░рд┐рдЧрд░ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  perform _partition_restore_triggers(_pt); 

- рдПрдХ рдШрдЯрдирд╛ рдЯреНрд░рд┐рдЧрд░ рдмрдирд╛рдПрдБ
  perform _partition_def_tr_on_delete(_pt); 

- рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдмрдирд╛рдПрдБ (рдиреМрдХрд░реА)
  perform _partition_create_index(_pt); 

- рд╡рд┐рдЪрд╛рд░, рдЕрдиреБрднрд╛рдЧ рд▓рд┐рдВрдХ (рдиреМрдХрд░реА) рдмрджрд▓реЗрдВ
  perform _partition_replace_view(_pt); 


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд░рдирд┐рдВрдЧ рд╕рдордп рдХрдИ рдХрд╛рд░рдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЖрдХрд╛рд░, рд╕рдВрдмрдВрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЕрдиреБрдХреНрд░рдорд┐рдд рдФрд░ рд╕рд░реНрд╡рд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ 300Gb рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдПрдХ рдШрдВрдЯреЗ рд╕реЗ рднреА рдХрдо рд╕рдордп рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


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


рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛? рдЖрдЗрдП рдкреНрд░рд╢реНрди рдпреЛрдЬрдирд╛ рдХреЛ рджреЗрдЦреЗрдВ:

  EXPLAIN ANALYZE select * from тАЬsalesтАЭ where dt BETWEEN '01.01.2019'::date and '14.01.2019'::date 




рд╣рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рддреЗрдЬреА рд╕реЗ рдорд┐рд▓рд╛ рдФрд░ рдПрдХ рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХреЗ рдХрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

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

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


рдореИрдВ рдЙрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рд╡рд┐рднрд╛рдЬрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдЬрд┐рдирдХреЗ рдХрдИ рд╕рдВрдмрдВрдз рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдЦрдВрдбрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

PostgreSQL рджреБрдирд┐рдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рдУрдкрди рд╕реЛрд░реНрд╕ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ!

рдЖрдк рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

рд╕реНрд░реЛрдд рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ

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


All Articles