Postgres world рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ (рд╣реАрдк, рд╣реАрдк) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред Postgres рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ MVCC рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдЯреНрдпреВрдкрд▓ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЬрдорд╛ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рдЕрдиреБрдХреНрд░рдорд┐рдд рдмрдирд╛рдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рджрд┐рдП рдЧрдП рд╣реИрдВред
рдиреЛрдЯ: рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдХреНрд╡реЗрд░реАрдЬрд╝ рдПрдХ рдЕрдирдореЙрдбрд┐рдлрд╛рдЗрдб рдкрдЧрд┐рд▓рд╛ рдирдореВрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВредрдХрд╡рд░рд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЖрдЗрдП рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдИрдореЗрд▓ рдкрддреЗ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВред
customer
рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ
active
рдХреЙрд▓рдо рд╣реИ, рдФрд░ рдЕрдиреБрд░реЛрдз рд╕рд░рд▓ рд╣реИ:
pagila=
рдХреНрд╡реЗрд░реА
customer
рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХрд╛ рдкреВрд░рд╛ рдЕрдиреБрдХреНрд░рдо рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИред
active
рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдПрдВ:
pagila=
рдЗрд╕рдиреЗ рдорджрдж рдХреА, рдмрд╛рдж рдореЗрдВ рд╕реНрдХреИрди рдПрдХ "
index scan
" рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ Postgres
idx_cust1
рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЕрдиреНрдп рдХреЙрд▓рдо (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ,
email
рдХреЙрд▓рдо) рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдвреЗрд░ рдХреЛ рдЦреЛрдЬрдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ рдЬрд┐рд╕реЗ рдХреНрд╡реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
PostgreSQL 11 рдиреЗ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ред рд╡реЗ рдЖрдкрдХреЛ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓рдо рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ - рдЙрдирдХрд╛ рдорд╛рди рдЗрдВрдбреЗрдХреНрд╕ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рд╣рдордиреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЕрдВрджрд░ рдИрдореЗрд▓ рдореВрд▓реНрдп рдЬреЛрдбрд╝рд╛ рд╣реИ, рддреЛ Postgres рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдвреЗрд░ рдореЗрдВ
email
рдореВрд▓реНрдп рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
pagila=
"
Index Only Scan
" рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрд╡реЗрд░реА рдХреЛ рдЕрдм рдХреЗрд╡рд▓ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдЯреЗрдмрд▓ рд╣реАрдк рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдбрд┐рд╕реНрдХ I / O рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдЖрдЬ, рдХрд╡рд░рд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗрд╡рд▓ рдмреА-рдкреЗрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрд╕реНрдХреЙрд░реНрдЯ рдкреНрд░рдпрд╛рд╕ рдЕрдзрд┐рдХ рд╣реЛрдВрдЧреЗред
рдЖрдВрд╢рд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЖрдВрд╢рд┐рдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗрд╡рд▓ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдмрд╕реЗрдЯ рд╣реИред рдпрд╣ рдЕрдиреБрдХреНрд░рдорд┐рдд рдФрд░ рддреЗрдЬреА рд╕реЗ рд╕реНрдХреИрди рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХреИрд▓рд┐рдлреЛрд░реНрдирд┐рдпрд╛ рдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рдИрдореЗрд▓ рдкрддреЗ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:
SELECT c.email FROM customer c JOIN address a ON c.address_id = a.address_id WHERE a.district = 'California'; which has a query plan that involves scanning both the tables that are joined: pagila=
рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдореЗрдВ рдХреНрдпрд╛ рджреЗрдЧрд╛:
pagila=
address
рд╕реНрдХреИрди рдХреЛ
idx_address1
рдЗрдВрдбреЗрдХреНрд╕
idx_address1
рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░
address
рд╣реАрдк рдХреЛ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЪреВрдВрдХрд┐ рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдХреНрд╡реЗрд░реА рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдПрдХ рдЖрдВрд╢рд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЙрди рдкрддреЗ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдХреНрд╖реЗрддреНрд░
'California'
:
pagila=
рдЕрдм рдЕрдиреБрд░реЛрдз рдХреЗрд╡рд▓
idx_address2
рдкрдврд╝рддрд╛ рд╣реИ рдФрд░
address
рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕реНрдкрд░реНрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдорд▓реНрдЯреА-рд╡реИрд▓реНрдпреВ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдХреБрдЫ рд╕реНрддрдВрдн рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрдирдореЗрдВ рдПрдХ рд╕реНрдХреЗрд▓рд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
jsonb
,
arrays
рдФрд░
tsvector
рдЬреИрд╕реЗ
jsonb
рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдПрдХ рдпрд╛ рдХрдИ рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдРрд╕реЗ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЗрди рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рднреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореВрд▓реНрдпреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреА рд╣реЛрдЧреАред
рдЖрдЗрдП рд╕рднреА рдлрд┐рд▓реНрдореЛрдВ рдХреЗ рдирд╛рдо рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЬрд┐рдирдореЗрдВ рдЕрд╕рдлрд▓рддрд╛ рд╕реЗ рдХрдЯреМрддреА рд╣реЛрддреА рд╣реИред
film
рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкрд╛рда рд╕реНрддрдВрдн рд╣реИ рдЬрд┐рд╕реЗ
special_features
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдлрд┐рд▓реНрдо рдореЗрдВ рдпрд╣ "рд╡рд┐рд╢реЗрд╖ рдЧреБрдг" рд╣реИ, рддреЛ рд╕реНрддрдВрдн рдореЗрдВ рдкрд╛рда рдХреЗ
Behind The Scenes
рдПрдХ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рддрддреНрд╡ рд╣реЛрддрд╛ рд╣реИред рдРрд╕реА рд╕рднреА рдлрд┐рд▓реНрдореЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
special_features
рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП "рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ" рдХреЗ рд╕рд╛рде рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
SELECT title FROM film WHERE special_features @> '{"Behind The Scenes"}';
рдирд┐рдпрдВрддреНрд░рдг рдСрдкрд░реЗрдЯрд░
@>
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рджрд╛рдИрдВ рдУрд░ рдмрд╛рдИрдВ рдУрд░ рдХрд╛ рдЙрдкрд╕рдореВрд╣ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЕрдиреБрд░реЛрдз рдпреЛрдЬрдирд╛:
pagila=
рдЬреЛ 67 рдХреА рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдлреБрд▓ рд╣реАрдк рд╕реНрдХреИрди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдирд┐рдпрдорд┐рдд рдмреА-рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рддрд╛ рд╣реИ:
pagila=
рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдмреА-рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕ рдЗрдВрдбреЗрдХреНрд╕ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡реЛрдВ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╣рдореЗрдВ GIN рдЗрдВрдбреЗрдХреНрд╕ рдЪрд╛рд╣рд┐рдПред
pagila=
GIN-index рдЗрдВрдбреЗрдХреНрд╕ рдХрд┐рдП рдЧрдП рд╕рдордЧреНрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рди рдХреА рд▓рд╛рдЧрдд рдЖрдзреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ
рд╕реВрдЪрдХрд╛рдВрдХ рд╕рдордп рдХреЗ рд╕рд╛рде рдЬрдорд╛ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХрднреА-рдХрднреА рдПрдХ рдирдП рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдкрд┐рдЫрд▓реА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдорд╛рдирд╡ рдкрдардиреАрдп SQL рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреИрдЯрд▓реЙрдЧ рджреГрд╢реНрдп
pg_indexes
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд╕рдорд╛рди рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
SELECT array_agg(indexname) AS indexes, replace(indexdef, indexname, '') AS defn FROM pg_indexes GROUP BY defn HAVING count(*) > 1; And here's the result when run on the stock pagila database: pagila=
рд╕реБрдкрд░рд╕реЗрдЯ рд╕реВрдЪрдХрд╛рдВрдХ
рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрдИ рдЕрдиреБрдХреНрд░рдорд┐рдд рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдЕрдиреНрдп рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдУрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ - рдПрдХ рд╕реБрдкрд░рд╕реЗрдЯ рдХреЗрд╡рд▓ рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕реНрдХреИрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдерд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЬрд┐рд╕ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реБрдкрд░рд╕реЗрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдерд╛ рд╡рд╣ рдЕрдм рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЛ рдРрд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк
pg_cex рд╕реЗ
pg_catalog
рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдкреНрд░рдпреБрдХреНрдд рд╕реВрдЪрдХрд╛рдВрдХ
рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рдЗрдВрдбреЗрдХреНрд╕ рдЕрдм рдХрд┐рд╕реА рднреА рдХреНрд╡реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рднреА рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдкреНрд░рдмрдВрдзрдХ рджреНрд╡рд╛рд░рд╛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
pg_stat_user_indexes
рд╕рд┐рд╕реНрдЯрдо рдХреИрдЯрд▓реЙрдЧ
pg_stat_user_indexes
рдЖрдк
idx_scan
рдорд╛рди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рд╕рдВрдЪрдпреА рдХрд╛рдЙрдВрдЯрд░ рд╣реИред рдЗрд╕ рдорд╛рди рдХреЛ рд╕рдордп рдХреЗ рд╕рд╛рде рдЯреНрд░реИрдХ рдХрд░рдирд╛ (рдЬреИрд╕реЗ, рдПрдХ рдорд╣реАрдирд╛) рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рджреЗрдЧрд╛ рдХрд┐ рдХреМрди рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ
'public'
рд╕реНрдХреАрдорд╛ рдореЗрдВ рд╕рднреА рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдХреИрди рдХрд╛рдЙрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рд╣реИ:
SELECT relname, indexrelname, idx_scan FROM pg_catalog.pg_stat_user_indexes WHERE schemaname = 'public'; with output like this: pagila=
рдХрдо рддрд╛рд▓реЛрдВ рд╡рд╛рд▓реЗ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдПрдВ
рдЕрдХреНрд╕рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд╡реЗ рдЖрдХрд╛рд░ рдореЗрдВ рдлреБрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕реГрдЬрди рд╕реНрдХреИрди рдХреЛ рдЧрддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реВрдЪрдХрд╛рдВрдХ рджреВрд╖рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реВрдЪрдХрд╛рдВрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рд╕рдорд╛рдирд╛рдВрддрд░ рдЗрдВрдбреЗрдХреНрд╕ рдирд┐рд░реНрдорд╛рдг рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
PostgreSQL 11 рдореЗрдВ, рдмреА-рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдирд╛ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд╣реИред рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рд╣реИрдВ:
SET max_parallel_workers = 32; SET max_parallel_maintenance_workers = 16;
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдмрд╣реБрдд рдЫреЛрдЯреЗ рд╣реИрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЗрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ
рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВред
рдкреГрд╖реНрдарднреВрдорд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдирд┐рд░реНрдорд╛рдг
рдЖрдк рдХреНрд░рд┐рдПрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдХрдорд╛рдВрдб рдХреЗ
CONCURRENTLY
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
pagila=
рдпрд╣ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрд╕реЗ рдЯреЗрдмрд▓ рд▓реЙрдХрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЦрдкрдд рд╣реЛрддреА рд╣реИред
Postgres рдЕрдиреБрдХреНрд░рдорд┐рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд▓рдЪреАрд▓реЗ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ, рд╕рд╛рде рд╣реА рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреА рд╡рд┐рд╕реНрдлреЛрдЯрдХ рд╡реГрджреНрдзрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рдпреБрдХреНрддрд┐рдпрд╛рдВ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рдФрд░ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреИрдорд╛рдирд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреАред