PostgreSQL рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ - 10 (рдмреНрд▓реВрдо)

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╣рдордиреЗ 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 рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИред

рдФрд░ рдЕрдВрдд рдореЗрдВ:


рдпрд╣ рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реЗрдЦреЛрдВ рдХреА рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬрд╛рд░реА рд░рд╣реЗрдЧреА, рдЬрдм рдирдП рд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреНрдпрд╛рдЬ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

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

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


All Articles