рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╣рдордиреЗ PostgreSQL
рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдЗрдВрдЬрди рдФрд░ рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде-рд╕рд╛рде
рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ ,
рдмреА-рдкреЗрдбрд╝ ,
рдЬреАрдПрд╕рдЯреА ,
рдПрд╕рдкреА-рдЬреАрдПрд╕рдЯреА ,
рдЬреАрдЖрдИрдПрди ,
рдЖрд░рдпреВрдПрдо , рдФрд░
рдмреНрд░рд┐рди рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА ред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдлреВрд▓
рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛
рдПрдХ рд╢рд╛рд╕реНрддреНрд░реАрдп рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдПрдХ рд╕реЗрдЯ рдореЗрдВ рдПрдХ рддрддреНрд╡ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреА рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред рдлрд╝рд┐рд▓реНрдЯрд░ рдЕрддреНрдпрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрд▓рдд рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рдпрд╣ рдЧрд▓рддреА рд╕реЗ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рд╕реЗрдЯ рдХрд╛ рд╕рджрд╕реНрдп (рдЧрд▓рдд рд╕рдХрд╛рд░рд╛рддреНрдордХ) рдорд╛рди рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕реЗрдЯ рдХреЗ рдПрдХ рддрддреНрд╡ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ (рдЭреВрдареА рдирдХрд╛рд░рд╛рддреНрдордХ) ред
рдлрд╝рд┐рд▓реНрдЯрд░ рдПрдХ рд╕рд░рдгреА рд╣реИ
рдПрдо рдмрд┐рдЯреНрд╕ (рдЬрд┐рд╕реЗ рдПрдХ
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЬреЛ рд╢реБрд░реВ рдореЗрдВ рд╢реВрдиреНрдп рд╕реЗ рднрд░рд╛ рд╣реЛрддрд╛ рд╣реИред
k рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЪреБрдиреЗ рдЧрдП рд╣реИрдВ рдЬреЛ рд╕реЗрдЯ рдХреЗ рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЛ рдореИрдк рдХрд░рддреЗ рд╣реИрдВ
k рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рдЯреБрдХрдбрд╝реЗред рд╕реЗрдЯ рдореЗрдВ рдПрдХ рддрддреНрд╡ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдирддреАрдЬрддрди, рдпрджрд┐ рддрддреНрд╡ рдХреЗ рдЕрдиреБрд░реВрдк рд╕рднреА рдмрд┐рдЯреНрд╕ рдПрдХ рдкрд░ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рддрддреНрд╡ рд╕реЗрдЯ рдХрд╛ рд╕рджрд╕реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд┐рдЯ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рддрддреНрд╡ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдПрдХ DBMS рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ
рдПрди рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдбреЗрдХреНрд╕ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдорд╛рди рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рддрддреНрд╡реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреА рд░рдЪрдирд╛ рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рд▓рдВрдмрд╛рдИ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ
рдПрдо , рд╣рдо рд╕реВрдЪрдХрд╛рдВрдХ рдЖрдХрд╛рд░ рдФрд░ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмреАрдЪ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рдмрдВрдж рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреНрд╖реЗрддреНрд░ рдмрдбрд╝рд╛ рд╣реИ, рдХрд╛рдлреА "рд╡рд┐рд╕реНрддреГрдд" рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реАрд▓реНрдб рдкрд░ рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд╡реЗрд░реА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред BRIN рдХреА рддрд░рд╣, рдЗрд╕ рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдХреИрди рдХреЗ рддреНрд╡рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдореИрдЪреЛрдВ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдкреБрди: рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдПрдХ рдореМрдХрд╛ рд╣реИред
рд╕рдВрд░рдЪрдирд╛
рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА
GiST рдкрд╣реБрдВрдЪ рд╡рд┐рдзрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреЗрдбрд╝реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИред рдЗрди рдкреЗрдбрд╝реЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдмреНрд▓реВрдо рд╕реВрдЪрдХрд╛рдВрдХ рдПрдХ рд╕рдкрд╛рдЯ рд╕рдВрд░рдЪрдирд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдпрдорд┐рдд рдкреГрд╖реНрдареЛрдВ рдХреЗ рдмрд╛рдж рдПрдХ рдореЗрдЯрд╛рдкреЗрдЬ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдкрдВрдХреНрддрд┐ (TID) рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдФрд░ рд╕рдВрджрд░реНрдн рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╡рд┐рдХрд▓реНрдк
рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рддреЗ рд╕рдордп, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдХреБрд▓ рдЖрдХрд╛рд░ ("рд▓рдВрдмрд╛рдИ") рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓
рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ ("col1" - "col32"):
create index on ... using bloom(...) with (length=..., col1=..., col2=..., ...);
рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ: рдЗрди рдирдВрдмрд░реЛрдВ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╡рд░реНрдЧ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдХрдХреНрд╖рд╛рдПрдВ рдкреИрд░рд╛рдореАрдЯреНрд░рд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐
рдЗрд╕ рдкрд░ рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рдкрд░ рдЖрдЧреЗ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред
рд╣рдо рдЙрдкрдпреБрдХреНрдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ?
рд╕рд┐рджреНрдзрд╛рдВрдд рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрднрд╛рд╡рдирд╛ рджреА
рдкреА рдПрдХ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рд▓реНрдЯрд░, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрд┐рдЯреНрд╕ рдХреА рдЗрд╖реНрдЯрддрдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
m=nn log2p/ ln2 , рдХрд╣рд╛рдБ
рдПрди рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕реЗрдЯ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ
k=тИТ log2p ред
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рджреЛ-рдмрд╛рдЗрдЯ рдкреВрд░реНрдгрд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЕрдВрджрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдорд╛рди
рдПрдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЧреЛрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
16 ред
рд╕рдВрднрд╛рд╡рдирд╛ рдЪреБрдирддреЗ рд╕рдордп
рдкреА , рд╣рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд▓рдЧрднрдЧ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛
(рдПрдо/8+6)рдПрди , рдХрд╣рд╛рдБ
рдПрди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╣реИ
6 рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ TID рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИред
рдиреЛрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрд┐рдВрджреБ:
- рд╕рдВрднрд╛рд╡рдирд╛ рдкреА рдПрдХ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдПрдирдкреА рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрди рдХреЗ рджреМрд░рд╛рди рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓реМрдЯрд╛рдиреЗ рд╡рд╛рд▓реА рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдорд┐рд▓рд┐рдпрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╡рд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдкреНрд░рд╛рдпрд┐рдХрддрд╛ 0.01, рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рди рдореЗрдВ, рдФрд╕рддрди, рд╣рдо "рдЗрдВрдбреЗрдХреНрд╕ рд░реАрдЪреЗрдХ рджреНрд╡рд╛рд░рд╛ рд░реАрд╡реНрд╕ рд░рд┐рдореВрд╡реНрдб: 10000" рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдПрдХ рд╕рдВрднрд╛рд╡реНрдп рд╕рдВрд░рдЪрдирд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрдм рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдФрд╕рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЬреЛ рдХреБрдЫ рднреА рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдЙрдкрд░реЛрдХреНрдд рдЕрдиреБрдорд╛рди рдПрдХ рдЖрджрд░реНрд╢ рдЧрдгрд┐рддреАрдп рдореЙрдбрд▓ рдФрд░ рдХреБрдЫ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдлрд╛рд░реНрдореВрд▓реЗ рдХреЛ рди рд╕рдордЭреЗрдВ: рд╡реЗ рдХреЗрд╡рд▓ рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрди рд╣реИрдВред
- рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐ рд╣рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЪреБрдирдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИред рдПрдХ рдЙрдЪрд┐рдд рдзрд╛рд░рдгрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╖реНрдЯрддрдо рд╕рдВрдЦреНрдпрд╛ рдХреЙрд▓рдо рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдЕрдиреНрдп рд╢реЛрдзреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╣реИрдВ)ред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдкрд┐рдЫрд▓реЗ рдЖрдЗрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░реЗрдВред
рдЕрджреНрдпрддрди рдХрд░ рд░рд╣рд╛ рд╣реИ
рдЬрдм рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдбрд╛рд▓реА рдЬрд╛рддреА рд╣реИ, рддреЛ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╕рднреА рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдирдХреЗ рд╕рднреА рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рдЯреНрд╕ рдПрдХ рдореЗрдВ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЬрдмрдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдмреАрдЬ рд╣рд░ рдмрд╛рд░ рдПрдХрдорд╛рддреНрд░ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреА рдорджрдж рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдирд┐рдпрдорд┐рдд рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреНрд▓реВрдо рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рдЬрдм рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдкрдВрдХреНрддрд┐ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдкреВрд░реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕реВрдЪрдХрд╛рдВрдХ рдкрдВрдХреНрддрд┐ рднреАред
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдПрдХ рдЕрдкрдбреЗрдЯ рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдкрдВрдХреНрддрд┐ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдирдП рдПрдХ рдХреЗ рд╕рдореНрдорд┐рд▓рди (рдЦрд░реЛрдВрдЪ рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╕реНрдХреИрдирд┐рдВрдЧ
рдЪреВрдВрдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреА рд╣реИ рд╡рд╣ рдПрдХ рд╕реЗрдЯ рдореЗрдВ рдХрд┐рд╕реА рддрддреНрд╡ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╣реИ, рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдПрдХрдорд╛рддреНрд░ рдСрдкрд░реЗрд╢рди рдПрдХ рдЗрдХреНрд╡рд┐рдЯреА рдЪреЗрдХ (рдЬреИрд╕реЗ рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕) рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рд╕рдкрд╛рдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрдВрдбреЗрдХреНрд╕ рдПрдХреНрд╕реЗрд╕ рдХреЗ рджреМрд░рд╛рди, рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрдврд╝рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдмрд┐рдЯрдореИрдк рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рддрдм рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реВрдЪрдХрд╛рдВрдХ рдПрдХреНрд╕реЗрд╕ рдореЗрдВ, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕реВрдЪрдХрд╛рдВрдХ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдиреНрд╣реЗрдВ рдЬрд▓реНрдж рд╣реА рдлрд┐рд░ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдкрдврд╝рдирд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдХреИрди рд╣реИред рдХреИрд╢ рд╕реЗ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрдврд╝рдирд╛ рдПрдХ рдЫреЛрдЯреЗ рдмрдлрд░ рд░рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдХреИрди рдХреЗ рд▓рд┐рдПред
рд╣рдореЗрдВ рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рдпрд╣ рдпреЛрдЬрдирд╛рдХрд╛рд░ рдХреЛ рдЙрддрдирд╛ рд╣реА рдХрдо рдЖрдХрд░реНрд╖рдХ рд▓рдЧреЗрдЧрд╛ред рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рд░реИрдЦрд┐рдХ рд╣реИ, рдкреЗрдбрд╝ рдХреА рддрд░рд╣ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЗ рд╡рд┐рдкрд░реАрддред
рдЙрджрд╛рд╣рд░рдг
рддрд╛рд▓рд┐рдХрд╛
рдЪрд▓реЛ
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рд╕реЗ рдПрдХ рдмрдбрд╝реА "рдлреНрд▓рд╛рдЗрдЯреНрд╕_рдмреА" рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ 30 рдорд┐рд▓рд┐рдпрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЖрдХрд╛рд░ 4 рдЬреАрдмреА рд╣реИред рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛:
demo=# \d flights_bi
Table "bookings.flights_bi" Column | Type | Collation | Nullable | Default --------------------+--------------------------+-----------+----------+--------- airport_code | character(3) | | | airport_coord | point | | | airport_utc_offset | interval | | | flight_no | character(6) | | | flight_type | text | | | scheduled_time | timestamp with time zone | | | actual_time | timestamp with time zone | | | aircraft_code | character(3) | | | seat_no | character varying(4) | | | fare_conditions | character varying(10) | | | passenger_id | character varying(20) | | | passenger_name | text | | |
рдЖрдЗрдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ: рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ 9.6 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдорд╛рдирдХ рд╡рд┐рддрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред
demo=# create extension bloom;
рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╣рдо BRIN ("рд╢реЗрдбреНрдпреВрд▓_рдЯрд╛рдЗрдо", "рд╡рд╛рд╕реНрддрд╡рд┐рдХ_рдЯрд╛рдЗрдо", "рдПрдпрд░рдкреЛрд░реНрдЯ_рдЯреЙрдХ_рдСрдлрд╝рд╕реЗрдЯ") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреАрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░ рд╕рдХрддреЗ рдереЗред рдЪреВрдВрдХрд┐ рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдбреЗрдЯрд╛ рдХреЗ рднреМрддрд┐рдХ рдХреНрд░рдо рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдЗрдП рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЪрд▓реЛ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдордп рдХреНрд╖реЗрддреНрд░реЛрдВ ("рдирд┐рд░реНрдзрд╛рд░рд┐рдд_ рд╕рдордп" рдФрд░ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ_ рд╕рдордп") рдХреЛ рдмрд╛рд╣рд░ рд░рдЦреЗрдВ: рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рддреБрд▓рдирд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдЯреАрдХ рд╕рдордп рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╡реЗрд░реА рд╢рд╛рдпрдж рд╣реА рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ (рд╣рдо, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЧреЛрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдПрдХ рджрд┐рди рдХрд╛ рд╕рдордп, рд▓реЗрдХрд┐рди рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ)ред рд╣рдореЗрдВ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ ("рдПрдпрд░рдкреЛрд░реНрдЯ_рдХреЛрд░реНрдб") рдХреЗ рднреМрдЧреЛрд▓рд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рднреА рдмрд╛рд╣рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛: рдЖрдЧреЗ рдХреА рдУрд░ рджреЗрдЦрддреЗ рд╣реБрдП, "рдмрд┐рдВрджреБ" рдкреНрд░рдХрд╛рд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред
рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП 0.01 рддрдХ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ (рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рдЕрдзрд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ)ред рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд╕реВрддреНрд░
n=9 рдФрд░
N=30000$00 96 рдмрд┐рдЯ рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЖрдХрд╛рд░ рджреЗрдВ рдФрд░ рдкреНрд░рддрд┐ рддрддреНрд╡ 7 рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВред рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЕрдиреБрдорд╛рдирд┐рдд рдЖрдХрд╛рд░ 515 рдПрдордмреА (рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд▓рдЧрднрдЧ рдПрдХ рдЖрдард╡рд╛рдВ) рд╣реИред
(16 рдмрд┐рдЯреНрд╕ рдХреЗ рдиреНрдпреВрдирддрдо рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рд╕реВрддреНрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдЖрдХрд╛рд░ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рджреЛ рдЧреБрдирд╛ рдЫреЛрдЯрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ 0.5 рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реИред)
рд╕рдВрдЪрд╛рд▓рдХ рд╡рд░реНрдЧ
рддреЛ, рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
demo=# create index flights_bi_bloom on flights_bi using bloom(airport_code, airport_utc_offset, flight_no, flight_type, aircraft_code, seat_no, fare_conditions, passenger_id, passenger_name) with (length=96, col1=7, col2=7, col3=7, col4=7, col5=7, col6=7, col7=7, col8=7, col9=7);
ERROR: data type character has no default operator class for access method "bloom" HINT: You must specify an operator class for the index or define a default operator class for the data type.
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд┐рд╕реНрддрд╛рд░ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдСрдкрд░реЗрдЯрд░ рдХрдХреНрд╖рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
demo=# select opcname, opcintype::regtype from pg_opclass where opcmethod = (select oid from pg_am where amname = 'bloom') order by opcintype::regtype::text;
opcname | opcintype ----------+----------- int4_ops | integer text_ops | text (2 rows)
рд▓реЗрдХрд┐рди рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЕрдиреНрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕рдорд╛рди рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдмреНрд▓реВрдо рдПрдХреНрд╕реЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╡рд░реНрдЧ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдСрдкрд░реЗрдЯрд░ - рд╕рдорд╛рдирддрд╛ - рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рди - рд╣реИрд╢рд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдордирдорд╛рдиреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдСрдкрд░реЗрдЯрд░реЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ "рд╣реИрдХрд░реНрд╕" рдХреЗ рдСрдкрд░реЗрдЯрд░ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рджреЗрдЦрдирд╛ рд╣реИ:
demo=# select distinct opc.opcintype::regtype::text, amop.amopopr::regoperator, ampr.amproc from pg_am am, pg_opclass opc, pg_amop amop, pg_amproc ampr where am.amname = 'hash' and opc.opcmethod = am.oid and amop.amopfamily = opc.opcfamily and amop.amoplefttype = opc.opcintype and amop.amoprighttype = opc.opcintype and ampr.amprocfamily = opc.opcfamily and ampr.amproclefttype = opc.opcintype order by opc.opcintype::regtype::text;
opcintype | amopopr | amproc -----------+----------------------+-------------- abstime | =(abstime,abstime) | hashint4 aclitem | =(aclitem,aclitem) | hash_aclitem anyarray | =(anyarray,anyarray) | hash_array anyenum | =(anyenum,anyenum) | hashenum anyrange | =(anyrange,anyrange) | hash_range ...
рд╣рдо рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛ рдЧреБрдо рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдПрдВрдЧреЗ:
demo=# CREATE OPERATOR CLASS character_ops DEFAULT FOR TYPE character USING bloom AS OPERATOR 1 =(character,character), FUNCTION 1 hashbpchar; demo=# CREATE OPERATOR CLASS interval_ops DEFAULT FOR TYPE interval USING bloom AS OPERATOR 1 =(interval,interval), FUNCTION 1 interval_hash;
рдПрдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрд┐рдВрджреБрдУрдВ ("рдмрд┐рдВрджреБ" рдкреНрд░рдХрд╛рд░) рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд╣реИ рдХрд┐ рд╣рдо рдРрд╕реЗ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рд╣рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рд╣реИрд╢ рдЬреНрд╡рд╛рдЗрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ:
demo=# create index flights_bi_bloom on flights_bi using bloom(airport_code, airport_utc_offset, flight_no, flight_type, aircraft_code, seat_no, fare_conditions, passenger_id, passenger_name) with (length=96, col1=7, col2=7, col3=7, col4=7, col5=7, col6=7, col7=7, col8=7, col9=7);
CREATE INDEX
рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЖрдХрд╛рд░ 526 рдПрдордмреА рд╣реИ, рдЬреЛ рдЙрдореНрдореАрдж рд╕реЗ рдХреБрдЫ рдмрдбрд╝рд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реВрддреНрд░ рдкреГрд╖реНрда рдУрд╡рд░рд╣реЗрдб рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред
demo=# select pg_size_pretty(pg_total_relation_size('flights_bi_bloom'));
pg_size_pretty ---------------- 526 MB (1 row)
рдкреНрд░рд╢реНрдиреЛрдВ
рдЕрдм рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдорд╛рдирджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдПрдХ рд╕рдВрднрд╛рд╡реНрдп рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рджрдХреНрд╖рддрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рджреЛ рдпрд╛рддреНрд░рд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ, рдорд┐рд░реЛрд╕реНрд▓рд╛рд╡ рд╕рд┐рджреЛрд░реЛрд╡:
demo=# explain(costs off,analyze) select * from flights_bi where passenger_name='MIROSLAV SIDOROV';
QUERY PLAN -------------------------------------------------------------------------------------------------- Bitmap Heap Scan on flights_bi (actual time=2639.010..3010.692 rows=2 loops=1) Recheck Cond: (passenger_name = 'MIROSLAV SIDOROV'::text) Rows Removed by Index Recheck: 38562 Heap Blocks: exact=21726 -> Bitmap Index Scan on flights_bi_bloom (actual time=1065.191..1065.191 rows=38564 loops=1) Index Cond: (passenger_name = 'MIROSLAV SIDOROV'::text) Planning time: 0.109 ms Execution time: 3010.736 ms
рдФрд░ рдорд╛рд░рдлрд╛ рд╕реЛрд▓реЛрд╡реНрд╡рд╛:
demo=# explain(costs off,analyze) select * from flights_bi where passenger_name='MARFA SOLOVEVA';
QUERY PLAN --------------------------------------------------------------------------------------------------- Bitmap Heap Scan on flights_bi (actual time=9980.884..10142.684 rows=2 loops=1) Recheck Cond: (passenger_name = 'MARFA SOLOVEVA'::text) Rows Removed by Index Recheck: 3950168 Heap Blocks: exact=45757 lossy=67332 -> Bitmap Index Scan on flights_bi_bloom (actual time=1037.588..1037.588 rows=212972 loops=1) Index Cond: (passenger_name = 'MARFA SOLOVEVA'::text) Planning time: 0.157 ms Execution time: 10142.730 ms
рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╝рд┐рд▓реНрдЯрд░ рдиреЗ рдХреЗрд╡рд▓ 40 рд╣рдЬрд╝рд╛рд░ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ 4 рдорд┐рд▓рд┐рдпрди рдХреА рдЕрдиреБрдорддрд┐ рджреА рдереА рджреВрд╕рд░реЗ рдореЗрдВ ("рдЗрдВрдбреЗрдХреНрд╕ рд░реАрдЪреЗрдХ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдП рдЧрдП")ред рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рддрджрдиреБрд╕рд╛рд░ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред
рдФрд░ рдирд╛рдо рдХреЗ рдмрдЬрд╛рдп рдпрд╛рддреНрд░реА рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВред рдорд┐рд░реЛрд╕реНрд▓рд╛рд╡:
demo=# explain(costs off,analyze) demo-# select * from flights_bi where passenger_id='5864 006033';
QUERY PLAN ------------------------------------------------------------------------------------------------- Bitmap Heap Scan on flights_bi (actual time=13747.305..16907.387 rows=2 loops=1) Recheck Cond: ((passenger_id)::text = '5864 006033'::text) Rows Removed by Index Recheck: 9620258 Heap Blocks: exact=50510 lossy=165722 -> Bitmap Index Scan on flights_bi_bloom (actual time=937.202..937.202 rows=426474 loops=1) Index Cond: ((passenger_id)::text = '5864 006033'::text) Planning time: 0.110 ms Execution time: 16907.423 ms
рдФрд░ рдорд╛рд░рдлрд╛:
demo=# explain(costs off,analyze) select * from flights_bi where passenger_id='2461 559238';
QUERY PLAN -------------------------------------------------------------------------------------------------- Bitmap Heap Scan on flights_bi (actual time=3881.615..3934.481 rows=2 loops=1) Recheck Cond: ((passenger_id)::text = '2461 559238'::text) Rows Removed by Index Recheck: 30669 Heap Blocks: exact=27513 -> Bitmap Index Scan on flights_bi_bloom (actual time=1084.391..1084.391 rows=30671 loops=1) Index Cond: ((passenger_id)::text = '2461 559238'::text) Planning time: 0.120 ms Execution time: 3934.517 ms
рдкреНрд░рднрд╛рд╡рдХрд╛рд░рд┐рддрд╛ рдлрд┐рд░ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИ, рдФрд░ рдЗрд╕ рдмрд╛рд░ рдорд╛рд░рдлрд╛ рдЕрдзрд┐рдХ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдерд╛ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдЭреВрдареЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рдж рд╕реЗ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рде рдЦреЛрдЬ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХреА рдЬрд╛рдПрдЧреА
рдкреА рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ
p2 :
demo=# explain(costs off,analyze) select * from flights_bi where passenger_name='MIROSLAV SIDOROV' and passenger_id='5864 006033';
QUERY PLAN -------------------------------------------------------------------------------------------------------------------- Bitmap Heap Scan on flights_bi (actual time=872.593..877.915 rows=2 loops=1) Recheck Cond: (((passenger_id)::text = '5864 006033'::text) AND (passenger_name = 'MIROSLAV SIDOROV'::text)) Rows Removed by Index Recheck: 357 Heap Blocks: exact=356 -> Bitmap Index Scan on flights_bi_bloom (actual time=832.041..832.041 rows=359 loops=1) Index Cond: (((passenger_id)::text = '5864 006033'::text) AND (passenger_name = 'MIROSLAV SIDOROV'::text)) Planning time: 0.524 ms Execution time: 877.967 ms
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмреВрд▓рд┐рдпрди рдХреЗ рд╕рд╛рде рдЦреЛрдЬ "рдпрд╛" рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ; рдпрд╣ рдПрдХреНрд╕реЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдпреЛрдЬрдирд╛рдХрд╛рд░ рдХреА рд╕реАрдорд╛ рд╣реИред рдмреЗрд╢рдХ, рдПрдХ рд╡рд┐рдХрд▓реНрдк рджреЛ рдмрд╛рд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдкрдврд╝рдиреЗ, рджреЛ рдмрд┐рдЯрдореИрдк рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рдЪреБрдирд╛ рдЬрд╛рдирд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдмреНрд░рд┐рди рдФрд░ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛
рдмреНрд▓реВрдо рдФрд░ рдмреНрд░рд┐рди рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреНрд╖реЗрддреНрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдХрд░рддреЗ рд╣реИрдВред рдпреЗ рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ, рдЦреЛрдЬ рд╕рдЯреАрдХрддрд╛ рдХреЛ рдХреЙрдореНрдкреИрдХреНрдЯрдиреЗрд╕ рдХреЗ рд▓рд┐рдП рдмрд▓рд┐рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдмреНрд░рд┐рди рдЗрдВрдбреЗрдХреНрд╕ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд░реНрдЬрдиреЛрдВ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рдХрд╣рддреЗ рд╣реИрдВ) рдФрд░ рд░реЗрдВрдЬ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рднреМрддрд┐рдХ рдХреНрд░рдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдордЬрдмреВрдд рд╕реАрдорд╛ рд╣реИред рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдмрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ (рд╕реИрдХрдбрд╝реЛрдВ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ), рд▓реЗрдХрд┐рди рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреА рддрд░рд╣, рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рд╕рдорд╛рдирддрд╛ рдЬрд╛рдВрдЪ рдХреЗ рдХреЗрд╡рд▓ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдЙрд╕ рдЦреЛрдЬ рд╕рдЯреАрдХрддрд╛ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмреНрд▓реВрдо рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рд╛рдкреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдмрдбрд╝рд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ, рдФрд░ рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рдЧреБрдг
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЪрд▓реЛ рдмреНрд▓реВрдо рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ (рдкреНрд░рд╢реНрди
рдкрд╣рд▓реЗ рд╣реА рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ )ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╣реБрдБрдЪ рд╡рд┐рдзрд┐ рдХреЗ рдЧреБрдг рд╣реИрдВ:
amname | name | pg_indexam_has_property --------+---------------+------------------------- bloom | can_order | f bloom | can_unique | f bloom | can_multi_col | t bloom | can_exclude | f
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдкрд╣реБрдВрдЪ рд╡рд┐рдзрд┐ рд╣рдореЗрдВ рдХрдИ рд╕реНрддрдВрднреЛрдВ рдкрд░ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИред рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдПрдХ рдХреЙрд▓рдо рдкрд░ рдмреНрд▓реВрдо рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реВрдЪрдХрд╛рдВрдХ-рдкрд░рдд рдЧреБрдг рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
name | pg_index_has_property ---------------+----------------------- clusterable | f index_scan | f bitmap_scan | t backward_scan | f
рдХреЗрд╡рд▓ рдЙрдкрд▓рдмреНрдз рд╕реНрдХреИрди рддрдХрдиреАрдХ рдмрд┐рдЯрдореИрдк рд╕реНрдХреИрди рд╣реИред рдЪреВрдВрдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдореЗрд╢рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯреАрдЖрдИрдбреА тАЛтАЛрджреНрд╡рд╛рд░рд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдорд┐рдд рд╕реВрдЪрдХрд╛рдВрдХ рдПрдХреНрд╕реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
name | pg_index_column_has_property --------------------+------------------------------ asc | f desc | f nulls_first | f nulls_last | f orderable | f distance_orderable | f returnable | f search_array | f search_nulls | f
рдХреЗрд╡рд▓ рдбреИрд╢ рдпрд╣рд╛рдВ рд╣реИрдВ; рд╡рд┐рдзрд┐ NULLs рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИред
рдФрд░ рдЕрдВрдд рдореЗрдВ:
рдпрд╣ рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реЗрдЦреЛрдВ рдХреА рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬрд╛рд░реА рд░рд╣реЗрдЧреА, рдЬрдм рдирдП рд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреНрдпрд╛рдЬ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдореИрдВ рдбреНрд░рд╛рдлреНрдЯ рдкрдврд╝рдиреЗ рдФрд░ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдкреНрд░реЛрдлреЗрд╢рдирд▓ (рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЪрд░реНрдЪрд╛ рдХреЗ рдХрдИ рдЕрднрд┐рдЧрдо рддрд░реАрдХреЛрдВ рдХреЗ рд▓реЗрдЦрдХ рд╣реИрдВ) рд╕реЗ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдФрд░, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдзреИрд░реНрдп рдФрд░ рдореВрд▓реНрдпрд╡рд╛рди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдЖрднрд╛рд░реА рд╣реВрдВред рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдиреЗ рдореБрдЭреЗ рдЗрд╕ рдореБрдХрд╛рдо рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ред рдзрдиреНрдпрд╡рд╛рдж!