рдЖрдЬ рд╣рдо PostgreSQL 11 рдХреА рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ - рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд▓реЛрдЧреЛрдВ рдкрд░ рдмрд╕ рдЧрдПред
рд╕рд╛рдордЧреНрд░реА

рдЬрд┐рдд рд╕рдВрдХрд▓рди
PostgreSQL рдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ JIT рд╕рдВрдХрд▓рди, рдпрд╛рдиреА рдмрд╛рдЗрдирд░реА рдХреЛрдб рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, JIT рд╕рдВрдХрд▓рди
(Compile time 1 (--with-llvm))
рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде PostgreSQL
(Compile time 1 (--with-llvm))
ред рдЗрд╕реА рд╕рдордп, рдорд╢реАрди рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ 3.9 рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИред
рдХреНрдпрд╛ рддреЗрдЬреА рд▓рд╛ рд╕рдХрддреА рд╣реИ JIT?
- WHERE рдХреНрд▓реЙрдЬрд╝ рд╡рд╛рд▓реА рдХреНрд╡реЗрд░реАрдЬрд╝, рдпрд╛рдиреА рд╕рдм рдХреБрдЫ рдЬреЛ рдЗрд╕ рдХреАрд╡рд░реНрдб рдХреЗ рдмрд╛рдж рдЖрддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд╡рд╕рд░ рдЙрдкрдпреЛрдЧреА рд╣реИред
- рд▓рдХреНрд╖реНрдп рд╕реВрдЪреА рдХреА рдЧрдгрдирд╛: PostgreSQL рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ, рдпрд╣ рд╡рд╣ рд╕рдм рд╣реИ рдЬреЛ рдЪреБрдирд┐рдВрджрд╛ рдФрд░ рдмреАрдЪ рдореЗрдВ рд╣реИред
- рд╕рдореБрдЪреНрдЪрдпред
- рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдПрдХ рджреГрд╢реНрдп рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ (рдкреНрд░реЛрдЬреЗрдХреНрд╢рди)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо рджреЛрдиреЛрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдлрд╝реАрд▓реНрдб рдпреБрдХреНрдд рдПрдХ рдирдпрд╛ рдЯрдкрд▓ рд╣реИред
- рдирд▓рд┐рдХрд╛ рдЦрд╝рд░рд╛рдм рд╣реЛрдирд╛ред рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдХрдо рд╕реЗ рдХрдо рд▓реЛрдЕрд░рдХреЗрд╕, рд░рд┐рд▓реЗрд╢рдирд▓, рдбрд┐рд╕реНрдХ рдкрд░ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдлрд╝реАрд▓реНрдб рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЕрд╢рдХреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИред
Compile time 2
рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬреЗрдЖрдИрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред PostgreSQL рдореЗрдВ рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рдирд┐рдВрдЧ рдХрд╛ рдПрдХ рдкрд▓ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ JIT рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдпрд╣ JIT рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред
JIT рдХреЛ рдкреНтАНрд▓рдЧреЗрдмрд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЬреЗрдЖрдИрдЯреА рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдиреЗ JIT рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ PostgreSQL рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╕реЗрдЯрдЕрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЬреЗрдЖрдИрдЯреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред
рдЕрдЧрд▓рд╛ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ jit_above_cost рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред JIT рд╕реНрд╡рдпрдВ рдореБрдХреНрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, PostgreSQL JIT рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдбрд┐рдлреЙрд▓реНрдЯ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдХреНрд╡реЗрд░реА рдХреА рд▓рд╛рдЧрдд 100 рд╣рдЬрд╛рд░ рд╕рд╢рд░реНрдд рддреЛрддреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдЗрд╕реА рддрд░рд╣ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╛рди рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд░ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред
рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдЬреЗрдЖрдИрдЯреА рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдм рдХреБрдЫ рддреБрд░рдВрдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рд╣рд░ рдХреЛрдИ JIT рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ * id = 600 рдХреНрд╡реЗрд░реА рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╡реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж, рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЕрдиреБрд░реЛрдз рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рд░ рдХреЛрдИ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреА рд░рдЪрдирд╛ рдХрд░рддрд╛ рд╣реИред рдирддреАрдЬрддрди, PostgreSQL рдбрд┐рд╕реНрдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдкрд░ рдЯрд┐рдХреА рд╣реБрдИ рд╣реИ, рдЗрд╕рдореЗрдВ рд╕рд╛рдЭрд╛ рдмрдлрд╝рд░реНрд╕ рдФрд░ рдХреИрд╢ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рд░ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде 9 рдЕрд╢рдХреНрдд рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдк рдЯрдкрд▓ рд╡рд┐рдХреГрдд рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХреЗрдВред
select i as x1,
case when i % 2 = 0 then i else null end as x2,
case when i % 3 = 0 then i else null end as x3,
case when i % 4 = 0 then i else null end as x4,
case when i % 5 = 0 then i else null end as x5,
case when i % 6 = 0 then i else null end as x6,
case when i % 7 = 0 then i else null end as x7,
case when i % 8 = 0 then i else null end as x8,
case when i % 9 = 0 then i else null end as x9
into t
from generate_series(0, 10000000) i;
vacuum t;
analyze t;
PostgreSQL рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдЬреЗрдЖрдИрдЯреА рдХреЗ рдлрд╛рдпрджреЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реА рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░реЗрдВ рдФрд░ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред
set max_parallel_workers=0;
set max_parallel_workers_per_gather=0;
set jit_above_cost=0;
set jit_inline_above_cost=0;
set jit_optimize_above_cost=0;
рдпрд╣рд╛рдБ рд╕реНрд╡рдпрдВ рдЕрдиреБрд░реЛрдз рд╣реИ:
set jit=off;
explain analyze
select count(*) from t where
sqrt(pow(x9, 2) + pow(x8,2)) < 10000;
set jit=on;
explain analyze
select count(*) from t where
sqrt(pow(x9, 2) + pow(x8,2)) < 10000;
рдФрд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ:
Planning Time: 0.71 ms
Execution Time: 1986.323 ms
VS
Planning Time: 0.060 ms
JIT:
Functions: 4
Generation Time: 0.911 ms
Inlining: true
Inlining Time: 23.876 ms
Optimization: true
Optimization Time: 41.399 ms
Emission Time: 21.856 ms
Execution Time: 949.112 ms
JIT рдиреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдЖрдзрд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреАред рдирд┐рдпреЛрдЬрди рдХрд╛ рд╕рдордп рдЙрд╕реА рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрд╕реЗрд▓ рдХреИрд╢рд┐рдВрдЧ рдХреБрдЫ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВред
рдЕрдЧрд░ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ JIT рд╕рдВрдХрд▓рди рдореЗрдВ рд▓рдЧрднрдЧ 80 ms рд▓рдЧреЗред JIT рдореБрдХреНрдд рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ? рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдордп рднреА рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рдпреЛрдЬрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдорд╛рдг рдХреЗ рддреАрди рдЖрджреЗрд╢ред рдПрдХ рдорд╣рдВрдЧреА рдЦреБрд╢реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдХрд╛рд░рдг рднреБрдЧрддрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЬреЗрдЖрдИрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдлрд╛рдпрджреЗрдордВрдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рд╕реЗрдХреНрд╢рдирд┐рдВрдЧ
рдпрджрд┐ рдЖрдкрдиреЗ PostgreSQL рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛, рддреЛ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рд╢реЛ рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдБ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдВрд╕реНрдХрд░рдг 10 рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рд╣реБрдЖ, рдЬрдм рд╡рд┐рднрд╛рдЬрди (рд╡рд░реНрдЧреЛрдВ) рдХреА рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рдШреЛрд╖рдгрд╛ рджрд┐рдЦрд╛рдИ рджреАред рджреВрд╕рд░реА рдУрд░, рд╕рдм рдХреБрдЫ рдЕрдВрджрд░ рд╣реА рдмрдирд╛ рд░рд╣рд╛ рдФрд░ рд▓рдЧрднрдЧ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬреЛ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдерд╛, рдпрд╛рдиреА рдмреБрд░рд╛ред
рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ pg_pathman рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдкрд░ рдЗрд╖реНрдЯрддрдо рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдкрд░ рдХрд╛рдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рдерд╛ред
рд╕рдВрд╕реНрдХрд░рдг 11 рдореЗрдВ, рд╡рд┐рднрд╛рдЬрди рдореЗрдВ рдмрд╣реБрдд рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ:
- рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХреБрдВрдЬреА рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдпрд╛ рддреЛ рдПрдХ рдЕрд░реНрдз-рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╣реИ, рдпрд╛ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдЕрд░реНрдз-рдХреБрдВрдЬреА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдк рдЗрд╕ рдкрд░ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рддрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
- рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдм рди рдХреЗрд╡рд▓ рд░реЗрдВрдЬ, рдмрд▓реНрдХрд┐ рд╕реВрдЪреА рдФрд░ рд╣реИрд╢ рджреНрд╡рд╛рд░рд╛ рднреА рд╡рд┐рднрд╛рдЬрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╣реИрд╢ рдХрд╛рдлреА рдЖрджрд┐рдо рд╣реИ, рд╢реЗрд╖ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓реА рдЧрдИ рд╣реИред
- рдЕрджреНрдпрддрди рдХрд░рддреЗ рд╕рдордп, рд▓рд╛рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдЪрд▓рддреА рд╣реИред рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдПрдХ рдЯреНрд░рд┐рдЧрд░ рд▓рд┐рдЦрдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмрдбрд╝рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ: рдореЗрд░реЗ рдкрд╛рд╕ рдХрд┐рддрдиреЗ рд╕реЗрдХреНрд╢рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд░реНрдЧреЛрдВ (рд╣рдЬрд╛рд░реЛрдВ рдФрд░ рджрд╕рд┐рдпреЛрдВ рд╣рдЬрд╛рд░реЛрдВ) рдХреА рд╕реБрд╡рд┐рдзрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред Pg_pathman рдмреЗрд╣рддрд░ рдХрд░рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рднреА рдЕрдиреБрднрд╛рдЧ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред рдлрд┐рд░ рд╕реЗ, pg_pathman рдореЗрдВ рдЖрдк рдЕрдиреБрднрд╛рдЧреЛрдВ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣рд╛рдБ, рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ рд╡рд╣ рд╕рдм рдХреБрдЫ рдиреАрдЪреЗ рдХреА рдУрд░ рдЖрддрд╛ рд╣реИред рдпрджрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ, рддреЛ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдЖрдкрдХреЛ рдРрд╕реА рдЧрдбрд╝рдмрдбрд╝реА рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рддрдм рдЖрдкрдХреЛ рд░реЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдбрд╝рд╛ рджреЗрддреА рд╣реИред
PostgreSQL 11 рд╡рд┐рднрд╛рдЬрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдпрджрд┐ рджреЛ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдПрдХ рд╡рд┐рднрд╛рдЬрди рдХреБрдВрдЬреА рдФрд░ рд╡рд┐рднрд╛рдЬрди рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝рддреА рд╣реИрдВред рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдХреБрд▓ рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рдЖрдк рдореВрд▓ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрд╕рд╕реЗ рдЬреБрдбрд╝реА рд╕рднреА рдЯреЗрдмрд▓реЛрдВ рдкрд░ рд╕реНрдерд╛рдиреАрдп рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред
"рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдПрдХ рдЕрджреНрднреБрдд рдмрд╛рдд рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдХрд┐рд╕реА рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╡рд░реНрдЧреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛ рд╣реИ:

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

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

рдЕрдиреБрд░реЛрдз рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рд╣рдо рдПрдХ рдЧреИрд░-рд╡рд┐рднрд╛рдЬрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рдм рдХреБрдЫ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рд╡рд┐рднрд╛рдЬрди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЯреБрдХрдбрд╝рд╛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдПрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдСрд╕ рдХреЙрд▓рдо рдХрд╛ рдПрдХ рдореВрд▓реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдареЛрд╕ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рдЪрдпрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред
рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рдордп, рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░рд┐рдХрд░рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ PostgreSQL 11 рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ (рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рд╕рдордЭрд╛рддреЗ рд╣реИрдВ) рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдиреЗ рдбреЗрдЯрд╛ рдХреЛ рджреЛрдиреЛрдВ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛: рдирд╛рдиреА рдореЗрдВ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдиреИрдиреАрдЬрд╝ рдирд╣реАрдВ рдереЗред рдмрдлрд░ рдХреЛ рдХреЛрдИ рдХреЙрд▓ рдирд╣реАрдВ рдереЗред рд╕рдордп рдмрд┐рддрд╛рдпрд╛, рд╣рд╛рд▓рдд рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ PostgreSQL рдпрд╣ рд╕рдм рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╡рд┐рднрд╛рдЬрди рдЙрдиреНрдореВрд▓рди рдШреЛрд╖рдгрд╛ рддреБрд░рдВрдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рд╢рд╛рдпрдж рдЕрдЧрд▓реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рдпрд╣ рд╕рд╣реА рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ pg_pathman рдореЙрдбреНрдпреВрд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕реВрдЪрдХрд╛рдВрдХ
- рдиреАрд░рд╕ рддрд░реАрдХреЗ рд╕реЗ рдмреЛрд▓реА рдЕрдиреБрдХреВрд▓рди, рдпрд╛рдиреА рдмреА-рдЯреНрд░реАред рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдиреАрд░рд╕ рд░реВрдк рд╕реЗ рдмрдврд╝рддреЗ рдбреЗрдЯрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдирд╣реАрдВ рдирд┐рдХрд▓рддрд╛ рд╣реИред рдЕрдм PostgreSQL рдЕрдВрддрд┐рдо рдкреГрд╖реНрда рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рд╕реЗ рд╕рднреА рд░рд╛рд╕реНрддреЗ рдкрд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдо рдХреЛ рдХрд╛рдлреА рддреЗрдЬ рдХрд░рддрд╛ рд╣реИред
- PostgreSQL 10 рдиреЗ рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕рдиреЗ рд╡рд╛рд▓ (рдЖрдЧреЗ рд▓реЙрдЧ рд▓рд┐рдЦрдирд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдорд╛рди рдорд┐рд▓рд╛, рдкреГрд╖реНрда рдХреЛ рдЕрдирд▓реЙрдХ рдХрд┐рдпрд╛, рдорд╛рди рд▓реМрдЯрд╛рдпрд╛ред рдЕрдЧрд▓реЗ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рдмреНрд▓реЙрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдирд▓реЙрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЕрдм рд╣реИрд╢ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╡рд╣рд╛рдВ рд╕реЗ рд╕рднреА рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдирд▓реЙрдХ рдХрд░рддрд╛ рд╣реИред рдЕрдм рдЗрд╕реЗ рдПрдЪрдПрдПрд╕рдПрдЪ, рдЬреАрдПрд╕рдЯреА рдФрд░ рдЬреАрдЖрдИрдПрди рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдпрд╣ рд╕рдВрднрд╡рддрдГ SP-GiST рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рдиреНрдпреВрдирддрдо / рдЕрдзрд┐рдХрддрдо рддрд░реНрдХ рдХреЗ рд╕рд╛рде BRIN рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдпрджрд┐ рдЖрдк рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рдереЗ, рддреЛ HOT рдЕрдкрдбреЗрдЯ (рд╣реАрдк рдУрдирд▓реА рдЯреНрдпреВрдкрд▓) рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдЬрдм PostgreSQL рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдирдИ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рднреА рдЗрдВрдбреЗрдХреНрд╕реЛрдВ рдХреЛ рдЪрд┐рдкрдХрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЯреЗрдмрд▓ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдирдпрд╛ рдореВрд▓реНрдп рдирдП рдЯрдкрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдпрджрд┐ рдЕрдкрдбреЗрдЯ рдЙрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ рдЬреЛ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░ рдореБрдлреНрдд рд╕реНрдерд╛рди рд╣реИ, рддреЛ рдЗрдВрдбреЗрдХреНрд╕ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЯреНрдпреВрдкрд▓ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреА рдЧрдВрднреАрд░рддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдПрдБ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рдЕрдиреБрдХреВрд▓рди рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред PostgreSQL 11 рдореЗрдВ, рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдЯрдкрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рддреЛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ HOT рдЕрдкрдбреЗрдЯ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдХрд╡рд░рд┐рдВрдЧ рдЗрдВрдбрд┐рд╕реЗрд╕
рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗ PostgresPro рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рдереА, рдФрд░ рдЗрд╕ рдмрд╛рд░ PostgreSQL рдиреЗ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдХрд╡рд░рд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЕрджреНрд╡рд┐рддреАрдп рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реАрдзреЗ рдЗрдВрдбреЗрдХреНрд╕ рдЯреНрдпреВрдкрд▓ рдореЗрдВред
рдХреНрдпреЛрдВ? рд╣рд░ рдХреЛрдИ рдЕрдкрдиреЗ рддреНрд╡рд░рд┐рдд рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЗрдВрдбреЗрдХреНрд╕ рд╕реНрдХреИрди рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ "рдХрд╡рд░рд┐рдВрдЧ" рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рджреЛ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╕рдВрдХреАрд░реНрдг рдФрд░ рд╡рд┐рд╕реНрддреГрддред
рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдПрдХ рдЯреЗрдмрд▓ рдкрд░ рд╡реИрдХреНрдпреВрдо рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдбрд╛рд▓рддреЗ рд╣реИрдВ рдпрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдбрд╛рд▓рдирд╛ рдПрдХ рдзреАрдорд╛ рдСрдкрд░реЗрд╢рди рд╣реИред рдФрд░ рдХрд╡рд░рд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗрд╡рд▓ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рд╕рдЪ рд╣реИ, рдЙрд╕рдХреА рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рд╣реИрдВред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЙрди рд▓рд╛рднреЛрдВ рдХреЛ рдЬрд┐рдиреНрд╣реЗрдВ рддреБрд░рдВрдд рдирд╣реАрдВ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдХреНрд░рд┐рдПрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ c рдФрд░ d рдХреЗ рдХреЙрд▓рдо рдореЗрдВ рд╕реНрдХреЗрд▓рд░ рдЯрд╛рдЗрдк рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдмреА-рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╡реЗ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдПрдХ рдХрдо-рд╕реЗ-рдХрдо рддреБрд▓рдирд╛ рдХрд░реЗрдВред рдпрд╣ рдЕрдВрдХ рдпрд╛ рдмрд╣реБрднреБрдЬ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдпрд╣ рд╣реИ рдХрд┐ рдЯреНрдпреВрдкрд▓ 2.7 Kb рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдХреЛрдИ рдЯреЛрд╢рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЙрд╕ рдореЗрдВ рдлрд┐рдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреАред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрди рдЧрд╛рд░рдВрдЯреАрдХреГрдд рдХрд╡рд░ рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЕрдВрджрд░, рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдКрдкрд░ рдЦрдбрд╝рд╛ рд╣реИред рдПрдХ рдУрд░, рдЗрд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЕрдВрджрд░ рдЧрдгрдирд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рджреВрд╕рд░реА рдУрд░, рдпрд╣ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЙрддрдирд╛ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рд▓рдЧрддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЗрди рдХрд╡рд░ рдХрд┐рдП рдЧрдП рдХреЙрд▓рдо рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдПрд╕рдкреА рдЬреАрдПрд╕рдЯреА
рдХреБрдЫ рд▓реЛрдЧ рдЗрд╕ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рдлреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рдлрд┐рд░ рднреА, рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬреЛ рдХрд┐ рдбрд╛рд▓рд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╣рд╛рдирд┐рдкреВрд░реНрдг - рд╕реВрдЪрдХрд╛рдВрдХ, рд╕рдВрдкреАрдбрд╝рди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБрднреБрдЬ рд▓реЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛рдиреА рдиреНрдпреВрдирддрдо рдЖрдпрдд рдЬрд┐рд╕рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдмрд╣реБрднреБрдЬ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЪрд╛рд░-рдЖрдпрд╛рдореА рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрдд рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдо рдХреНрд▓рд╛рд╕рд┐рдХ quad3 рдХреЗ рд╕рд╛рде, рдЪрд╛рд░-рдЖрдпрд╛рдореА рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ SP-GiST рдиреЗ "рдкреНрд░реАрдлрд┐рдХреНрд╕ рд╕рд░реНрдЪ" рдСрдкрд░реЗрд╢рди рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдпрд╣ рд╕рдЪ рд╣реИ рдЕрдЧрд░ рдПрдХ рд▓рд╛рдЗрди рджреВрд╕рд░реЗ рдХрд╛ рдЙрдкрд╕рд░реНрдЧ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рди рдХреЗрд╡рд▓ рдЙрд╕ рддрд░рд╣ рдкреЗрд╢ рдХрд┐рдпрд╛, рдмрд▓реНрдХрд┐ рдПрд╕рдкреА-рдЬреАрдПрд╕рдЯреА рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдПред
SELECT * FROM table WHERE c ^@ тАЮabcтАЬ
рдмреА-рдЯреНрд░реА рдореЗрдВ 2.7 Kb рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рдХреА рд╕реАрдорд╛ рд╣реИ, рд▓реЗрдХрд┐рди SP-GiST рдирд╣реАрдВ рд╣реИред рд╕рдЪ рд╣реИ, PostgreSQL рдХреА рд╕реАрдорд╛ рд╣реИ: рдПрдХ рдПрдХрд▓ рдорд╛рди 1 рдЬреАрдмреА рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЙрддреНрдкрд╛рджрдХрддрд╛
- рдмрд┐рдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдХреЗрд╡рд▓ рд╕реНрдХреИрди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ ред рдпрд╣ рдХреНрд▓рд╛рд╕рд┐рдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗрд╡рд▓ рд╕реНрдХреИрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдЖрджреЗрд╢ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рдореБрдЪреНрдЪрдп рдЬреИрд╕реЗ рдЧрдгрдирд╛ (*) рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рдЯрдореИрдк рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрдирдХрд░реНрддрд╛ рддрдХ рдлрд╝реАрд▓реНрдб рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рд╡рд╣ рдХреЗрд╡рд▓ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рддрдереНрдп рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред
- рдЕрдЧрд▓рд╛ рдЗрдиреЛрд╡реЗрд╢рди рд╡реИрдХреНрдпреВрдо рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдлреНрд░реА рд╕реНрдкреЗрд╕ рдореИрдк рдХрд╛ рдЕрдкрдбреЗрдЯ рд╣реИ ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, PostgreSQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдЯреЗрдмрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдЯрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЫреЗрдж, рдЕрд╕рдВрдмрджреНрдз рд╕реНрдерд╛рди рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдлрдПрд╕рдПрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдЬреЛ рд╣рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдмрдбрд╝рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреНрдпреВрд▓ рдХреЛ voids рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдпрд╣ рд╡реИрдХреНрдпреВрдо рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВред рдФрд░ рдЕрдм рд╡реИрдХреНрдпреВрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдФрд░ рднрд╛рд░реА рднрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рдЯреЗрдмрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
- рд╡реИрдХреНрдпреВрдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдЗрдВрдбреЗрдХреНрд╕ рд╕реНрдХреИрди рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рднреА PostgreSQL рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЛ рдорд╛рдзреНрдпрдорд┐рдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рджреВрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╕рдВрдХреЗрдд рдЙрдирд╕реЗ рд╣реЛрддреЗ рд╣реИрдВред рдЗрдВрдбреЗрдХреНрд╕ рдХреЗрд╡рд▓ рд╕реНрдХреИрди рдЖрдкрдХреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкрд░ рдЗрд╕ рдЬрдВрдк рдХреЛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАрдзреЗ рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рд╡реИрдХреНрдпреВрдо, рдЬреЛ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдбрд┐рд▓реАрдЯ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╡реИрдХреНрдпреВрдо рд╣рдореЗрд╢рд╛ рджреЛ рдкрд╛рд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрддрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдХреНрдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдлрд┐рд░ рдпрд╣ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЬреБрдбрд╝реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓реМрдЯрддрд╛ рд╣реИ рдФрд░ рдЬреЛ рдЗрд╕реЗ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдЙрд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдЪрд░рдг рдХреА рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдпрджрд┐ рдЕрдВрддрд┐рдо рд╡реИрдХреНрдпреВрдо рдХреЗ рдмрд╛рдж рд╕реЗ рдХреЛрдИ рдбрд┐рд▓реАрдЯ рдпрд╛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдерд╛, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдореГрдд рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗред рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рд╣реИрдВ, рдмреА-рдЯреНрд░реА рдЕрдкрдиреЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ рддреБрд░рдВрдд рдирд╣реАрдВ рд╣рдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреЛ рдкрд╛рд╕ рдореЗрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдиреЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╡реИрдХреНрдпреВрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдореЗрдВ рдЬрдЧрд╣ рдЦрд╛рд▓реА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рджреЛ рдмрд╛рд░ рд╡реИрдХреНрдпреВрдо рдХрд░реЗрдВред
рдХрд┐рд╕реА рдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛, рдпрд╣ рдХреМрди рд╕реА рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдбрд┐рд▓реАрдЯ рдпрд╛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдерд╛? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдИ рд▓реЛрдЧ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ, рдмрд╕ рд╕реЛрдЪрддреЗ рдирд╣реАрдВ рд╣реИрдВред рдпреЗ рдХреЗрд╡рд▓ рдЯреЗрдмрд▓ рд╣реИрдВ, рдЬрд╣рд╛рдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ, рд╣рдЯрд╛рдиреЗ рдЕрддреНрдпрдВрдд рджреБрд░реНрд▓рдн рд╣реИред рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╡реИрдХреНрдпреВрдо / рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХреА рдЕрд╡рдзрд┐ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ, рдбрд┐рд╕реНрдХ рдкрд░ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реА рддрд░рд╣ред - рдПрдХ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд▓реЗрдирджреЗрди рдХрд░реЗрдВ ред рдпрд╣ рдПрдХ рдирд╡рд╛рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕реБрдзрд╛рд░ рд╣реИред рдЕрдм PostgreSQL рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдЧрд╛, рдФрд░ рд╢реЗрд╖ рд▓реЗрди-рджреЗрди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдХреА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдЧрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 2-4 рдХреЛрд░ рд╡рд╛рд▓рд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд░реНрд╡рд░ рд╣реИ рддреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдмрд╣реБрдд рдХрдо рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред
- postgres_fdw (рд╡рд┐рджреЗрд╢реА рдбреЗрдЯрд╛ рдЖрд╡рд░рдг) ред рдПрдлрдбреАрдбрдмреНрд▓реВ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреЛрд╕реНрдЯ-рдХрд╛рдВрдЧреНрд░реЗрд╕ рдЬреИрд╕рд╛ рджрд┐рдЦреЗред postgres_fdw рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрдбрд╝реЛрд╕реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд▓рдЧрднрдЧ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреА рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЕрдм рдЕрджреНрдпрддрди рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред PostgreSQL рдЕрдХреНрд╕рд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХрдЪреНрдЪрд╛ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреБрдбрд╝рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП FDW рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ, рдЙрд╕ рдЖрдИрдбреА рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЕрджреНрдпрддрди рдФрд░ / рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддреН, рдбреЗрдЯрд╛ рдЬреЛ рд╣рдо рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдЬрд╛рддреЗ рд╣реИрдВред ред рдЕрдм рдпрд╣ рд╕рдВрднрд╡ рд╣реИред рдмреЗрд╢рдХ, рдпрджрд┐ рдЯреЗрдмрд▓ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╢реАрдиреЛрдВ рдкрд░ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдлрдбреАрдбрдмреНрд▓реНрдпреВ рдЖрдкрдХреЛ рджреВрд░рд╕реНрде рдорд╢реАрди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдмрд╕ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
- toast_tuple_target ред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрдм рдбреЗрдЯрд╛ рдереЛрдбрд╝рд╛ рд╕реАрдорд╛ рд╕реЗ рдкрд░реЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЯреЛрд╕реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдРрд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЯреЛрд╕реНрдЯ рд╣рдореЗрд╢рд╛ рд╕реБрдЦрдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 90 рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕реАрдорд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ 100 рдлрд┐рдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ 10 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЯреЛрд╕реНрдЯ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рдЬрдм рдЖрдк рдЗрд╕ рдлреАрд▓реНрдб рдХреЛ рдЪреБрдирддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЯреЛрд╕реНрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдпрд╣ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХрд╣рд╛рдВ рд╣реИ, рдЯреЛрд╕реНрдЯ рдЯреЗрдмрд▓ рдкрд░ рдЬрд╛рдПрдВред рдЗрдХрдЯреНрдард╛ рдХрд░реЛ рдФрд░ рджреЗ рджреЛред
рдЕрдм рдареАрдХ-рдЯреНрдпреВрдирд┐рдВрдЧ рдХреА рдорджрдж рд╕реЗ рдЖрдк рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдПрдХ рдЕрд▓рдЧ рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЫреЛрдЯреЗ рдирд┐рдХрд╛рд╕ рдХреЛ рдЯреЛрд╕реНрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рд╡рд╛рд▓
- рд╡рд╛рд▓ (рд▓рд┐рдЦреЗрдВ рдЖрдЧреЗ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ) рдПрдХ рд░рд╛рдЗрдЯ рдлреЙрд░рд╡рд░реНрдб рд▓реЙрдЧ рд╣реИред рд╡рд╛рд▓ рд╕реЗрдЧрдореЗрдВрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдм initdb рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЪреНрдЫрд╛рдИ рдХрд╛ рд╢реБрдХреНрд░рд┐рдпрд╛, рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рдирд╣реАрдВред
- рддрд░реНрдХ рднреА рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╡рд╛рд▓ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рд╕реЗрдЯ рдХреЛ рддрдкрд╕реНрдпрд╛ рдЪреМрдХреА рдХреЗ рдХреНрд╖рдг рд╕реЗ рдмрдЪрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЕрдм рдЖрдЦрд┐рд░реА рд╕реЗред рдпрд╣ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ 1 рдЯреАрдмреА рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ, рдФрд░ рдЯреАрдкреАрдПрд╕ = 1, рдпрд╛рдиреА рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдПрдХ рдЕрдиреБрд░реЛрдз, рддреЛ рдЖрдкрдХреЛ рдЕрдВрддрд░ рдирд╣реАрдВ рджрд┐рдЦреЗрдЧрд╛ред
рдмреИрдХрдЕрдк рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐
- Truncate рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ ред рдпрд╣ рдбреАрдПрдордПрд▓ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЕрдВрддрд┐рдо рдерд╛ рдЬреЛ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рдЕрдм рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред
- рддреИрдпрд╛рд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ ред рдЕрдм рдЖрдк рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрди-рджреЗрди, рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ рджреЛ-рдЪрд░рдг рдкреНрд░рддрд┐рдмрджреНрдзред рдпрд╣ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╡рд┐рд╖рдо, рд╕рдЬрд╛рддреАрдп, рд╢рд╛рд░реНрдкреНрдб рдФрд░ рди рдЫрд╛рдпрд╛рдВрдХрд┐рдд, рдорд▓реНрдЯреАрдорд╛рд╕реНрдЯрд░ рдФрд░ рдЗрддрдиреЗ рдкрд░ред
- Pg_basebackup рд╕реЗ рдЕрдкрд╡рд╛рдж рдЕрд╕реНрдерд╛рдпреА рдФрд░ рдЕрд╕рдВрдмрджреНрдз рдЯреЗрдмрд▓ ред рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рд╢рд┐рдХрд╛рдпрдд рдХреА рд╣реИ рдХрд┐ pg_basebackup рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдЯреЗрдмрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝рдХрд░, рд╣рдо рдмреИрдХрдЕрдк рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдмрд╢рд░реНрддреЗ рдХрд┐ рдЖрдк рдЕрд╕реНрдерд╛рдпреА рдФрд░ рдЕрд╕рдВрдмрджреНрдз рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рд╣реЛрдЧрд╛ред
- рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рддрд┐рдХреГрддрд┐ (рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП) рдореЗрдВ рдЪреЗрдХрд╕рдордорд╛ рдирд┐рдпрдВрддреНрд░рдг ред рдЗрд╕рд╕реЗ рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рдХреНрдпрд╛ рд╣реБрдЖред рдЕрдм рддрдХ, рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реНрд▓реЙрдЯ рдкрджреЛрдВ рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдерд╛ ред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЖрдк рдХреЗрд╡рд▓ рдЖрдЧреЗ рд╣рд╡рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдХреЛрдИ рд╡рд╛рд▓ рд╣реЛред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдПрдХ рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдХреБрдЫ рд╡рд┐рджреЗрд╢реА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рдЗрд╕рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
Dba рдХреЗ рд▓рд┐рдП
- рдЖрд▓реНрдЯрд░ рдЯреЗрдмрд▓, рдХреЙрд▓рдо рдЬреЛрдбрд╝реЗрдВ, рдиреЙрдЯ рдбрд┐рдлреЙрд▓реНрдЯ рдПрдХреНрд╕ , рдкреВрд░реА рдЯреЗрдмрд▓ рд▓рд┐рдЦреЗрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╢реБрд▓реНрдХ рд╣реИ: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЕрд▓рдЧ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк tuple рдЙрдард╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдХреЙрд▓рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ PostgreSQL рдХреЛ рдЕрд╕реНрдерд╛рдпреА рдорд╛рди рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдбрд┐рдВрдЧ рдкрде рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ tuple рдореЗрдВ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░рдХреЗ рдЖрдкрдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдХреЛрдИ рднреА рдЗрд╕рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддрд╛ рд╣реИред
- рд╡реИрдХреНрдпреВрдо / рд╡рд┐рд╢реНрд▓реЗрд╖рдг ред рдкрд╣рд▓реЗ, рдЖрдк рдХреЗрд╡рд▓ рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдПрдХрд▓ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡реИрдХреНрдпреВрдо рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рдереЗ рдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рдереЗред рдЕрдм рдПрдХ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдХрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди
- рдмреА-рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд░реНрдорд╛рдг ред рд╕рдВрд╕реНрдХрд░рдг 11 рдореЗрдВ, рдХрдИ рд╢реНрд░рдорд┐рдХреЛрдВ рдореЗрдВ рдмреА-рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреА рдорд╢реАрди рд╣реИ, рдХрдИ рдбрд┐рд╕реНрдХ рдФрд░ рдХрдИ рдХреЛрд░ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╡реГрджреНрдзрд┐ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИред
- рдЬрд▓реНрд▓рд╛рдж рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЭрд╛ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдВрддрд░ рдХрдиреЗрдХреНрд╢рди ред , -. , . - , . .
- , union, create table as, select create materialized view!
- - (limit) . .
:
alter table usr reset (parallel_workers)
create index on usr(lower((so).occ)) тАФ 2
alter table usr set (parallel_workers=2)
create index on usr(upper((so).occ)) тАФ 1.8
parallel worker. . 16 4 ( ) 2 ., тАФ 1,8 . , , . , .
:
explain analyze
select u1.* from usr u, usr1 u1 where
u.id=u1.id+0
, . , user тАФ , . . , , .
, PostgreSQL 11 .

1425 , 1,5 . 1,4 . 2 . , 9.6 : 1 тАФ 1 ., 2 1 . , 10 tuple. 11 . : user, batch, x-scan append .
:

. 211 , 702 . , 510 1473. , 2 .
parallel hash join. . тАФ 4. , .
parallel index scan . batch . ? hash join, . user . , parallel hash, .
1 . , OLAP-, OLTP . OLTP , .
.
- . , . , ┬л┬╗ ┬л┬╗, index scan, . (highly skewed data), , . . , , .
- ┬л┬╗, .
Window-
SQL:2011, .
, , . , , , , , .
websearch, . , . , .
# select websearch_to_tsquery('dog or cat');
----------------------
'dor' | 'cat'
# select websearch_to_tsquery('dog -cat');
----------------------
'dor' & !'cat'
# select websearch_to_tsquery('or cat');
----------------------
'cat'
тАФ dog or cat тАФ . Websearch . | , . тАЬor catтАЭ. , . websearch тАЬorтАЭ . , -, .
Websearch тАФ . : , . , .
Json(b)
10- , 11- . json json(b), tsvector. ( json(b)) - . , , , bull, numeric, string, . .
# select jsonb_to_tsvector
('{"a":"texts", "b":12}', '"string"');
-------------------
'text':1
# select jsonb_to_tsvector
('{"a":"texts", "b":12}', '["string", "numeric"]');
-------------------
'12':3 'text':1
json(b), . , , , .
PL/*
.
CREATE PROCEDURE transaction_test1()
LANGUAGE plpgsql
AS $$
BEGIN
FOR i IN 0..9 LOOP
INSERT INTO test1 (a) VALUES (i);
IF i % 2 = 0 THEN
COMMIT;
ELSE
ROLLBACK;
END IF;
END LOOP;
END
$$;
CALL transaction_test1();
call, , . . . select, insert .
, , PostgreSQL . Perl, Python, TL PL/pgSQL. Perl sp begin, .
PL/pgSQL : , .
pgbench
pgbench ICSB bench тАФ , , . if, , . case, - .
--init-steps
, , .
random-seed. zipfian- . / тАФ , . - , , - , .
, , - .
PSQL
, PSQL, . exit quit.
- тАФ copy, 2 32 . copy : 2 32 - . , 2 31 2 32 copy . 64- , 2 64 .
- POSIX : NaN 0 = 1 1 NaN = 1.