рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрд╕реЗрд▓ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдЗрдВрдЬрди рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛
рдерд╛ , рджреВрд╕рд░рд╛
рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдирд┐рдкрдЯрд╛, рдФрд░ рдЕрдм рд╣рдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рддреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдЪрд▓рд┐рдП рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд╣реИрд╢
рд╕рдВрд░рдЪрдирд╛
рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд
рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдмрд╣реБрдд рд╕реЗ рдЖрдзрд╛рд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрд╢ рдЯреЗрдмрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдмрд╛рд╣рд░ рдХреА рддрд░рдл, рдПрдХ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рд░рдгреА рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рдкреВрд░реНрдгрд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред PostgreSQL рдореЗрдВ рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЕрдиреБрдореЗрдп рдореВрд▓реНрдпреЛрдВ рдХреА рдмрд╣реБрдд рдмрдбрд╝реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реЛрддреА рд╣реИ: рд╣рдо "рдкрд╛рда" рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЙрд▓рдо рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рддрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? рдЙрд╕реА рд╕рдордп, рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдкрд╛рда рд╕реНрддрдВрдн рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рддрдиреЗ рднрд┐рдиреНрди рдореВрд▓реНрдп рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ? рдЖрдорддреМрд░ рдкрд░, рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд╣реАрдВред
рд╣реИрд╢рд┐рдВрдЧ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛ (0 рд╕реЗ
рдПрди N1,
рдПрди рдорд╛рди рдХреБрд▓ рдореЗрдВ) рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрд╕реЛрд╕рд┐рдПрд╢рди рдХреЛ
рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛
рд╣реИ ред рдкреНрд░рд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рд░рдгреА рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рддрд╛рд▓рд┐рдХрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ (рдЯреАрдЖрдИрдбреА) рдХреЗ рд╕рдВрджрд░реНрдн рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕ рд╕рд╛рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ
рд╣реИрд╢ рдЯреЗрдмрд▓ рдмрдХреЗрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рдмрдХреЗрдЯ рдХрдИ TID рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдПрдХ рд╣реА рдЕрдиреБрдХреНрд░рдорд┐рдд рдорд╛рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдПрдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдмрд╛рд▓реНрдЯреА рджреНрд╡рд╛рд░рд╛ рд╕реНрд░реЛрдд рдорд╛рди рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрддрдирд╛ рд╣реА рдмреЗрд╣рддрд░ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрднреА-рдХрднреА рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ - рдЗрд╕реЗ
рдЯрдХрд░рд╛рд╡ рдХрд╣рд╛ рдЬрд╛рддрд╛
рд╣реИ ред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдмрд╛рд▓реНрдЯреА TID рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреА рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ рдкреНрд░рд╛рдкреНрдд TID рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдБрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рд╣рдо рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ? рдмрд╛рд▓реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 256 рд╣реЛрдиреЗ рджреЗрдВред рдлрд┐рд░ рдПрдХ рдмрд╛рд▓реНрдЯреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рд╡рд░реНрдг рдХрд╛ рдХреЛрдб (рдПрдХрд▓-рдмрд╛рдЗрдЯ рд╡рд░реНрдг рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдорд╛рдирдХрд░) рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рд╣реИ? рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдирд╣реАрдВ: рдпрджрд┐ рд╕рднреА рддрд╛рд░ рдПрдХ рд╣реА рдЪрд░рд┐рддреНрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдПрдХ рдмрд╛рд▓реНрдЯреА рдореЗрдВ рдорд┐рд▓ рдЬрд╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдПрдХрд░реВрдкрддрд╛ рдЗрд╕ рд╕рд╡рд╛рд▓ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдБрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рд╣реИрд╢рд┐рдВрдЧ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЗ рдХреЛрдб рдХреЛ рдорд╛рдкрддреЗ рд╣реИрдВ 256 modulo? рдпрд╣ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрджрд░реНрд╢ рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред рдпрджрд┐ рдЖрдк PostgreSQL рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдВрддрд░рд┐рдХ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ hashfunc.c рдореЗрдВ hash_any () рдХреА рдкрд░рд┐рднрд╛рд╖рд╛
рджреЗрдЦреЗрдВ ред
рд╕реВрдЪрдХрд╛рдВрдХ рд╕рдВрд░рдЪрдирд╛
рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВред рдХреБрдЫ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ (рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреА) рдХреЗ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдЬрд▓реНрджреА рд╕реЗ рдорд┐рд▓рд╛рди TID рдХреЛ рдвреВрдВрдврдирд╛ рд╣реИред
рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред PostgreSQL рдореЗрдВ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣рдореЗрд╢рд╛ "рдкреВрд░реНрдгрд╛рдВрдХ" рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдЬреЛ 2
32 billion 4 рдмрд┐рд▓рд┐рдпрди рдорд╛рдиреЛрдВ рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдмрд╛рд▓реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реБрд░реВ рдореЗрдВ рджреЛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдмрд╛рд▓реНрдЯреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрд┐рдЯ рдЕрдВрдХрдЧрдгрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╣реИрд╢ рдХреЛрдб рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдФрд░ рдпрд╣ рдмрд╛рд▓реНрдЯреА рд╣реИ рдЬрд╣рд╛рдБ рд╣рдо рдЕрдкрдирд╛ TID рдбрд╛рд▓реЗрдВрдЧреЗред
рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ TID рдХреЗ рдорд┐рд▓рд╛рди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдмрд╛рд▓реНрдЯреА рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ? TID рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдмрд╛рд▓реНрдЯреА рдореЗрдВ рдХреБрдВрдЬреА рдХреЗ рд╕реНрд░реЛрдд рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдЖрдХрд╛рд░ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреАред рдПрдХ рдХреБрдВрдЬреА рдХреЗ рдмрдЬрд╛рдп рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╛рд▓реНрдЯреА рдХреБрдВрдЬреА рдХреЗ рд╣реИрд╢ рдХреЛрдб рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред
рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рд▓реНрдЯреА рдирдВрдмрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рдпрд╣ рдмрд╛рд▓реНрдЯреА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛ рдФрд░ рдЙрдЪрд┐рдд рд╣реИрд╢ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдорд┐рд▓рд╛рди рд╡рд╛рд▓реЗ TID рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реИред рдпрд╣ "рд╣реИрд╢ рдХреЛрдб - TID" рдЬреЛрдбрд╝реЗ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд╛рдмрд┐рдпрд╛рдВ рди рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд▓реНрдЯреА рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЪрд╛рд░-рдмрд╛рдЗрдЯ рдХреЗ рд╣реИрд╢ рдХреЛрдб рднреА рд╣реИрдВ - рдХрд┐рд╕реА рдиреЗ рдЯрдХреНрдХрд░ рд╕реЗ рджреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд╣реБрдВрдЪ рд╡рд┐рдзрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрдХреНрд░рдордг рдЗрдВрдЬрди рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреА рд╣реИ (рдЗрдВрдЬрди рджреГрд╢реНрдпрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред
рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдореИрдк рдХрд░рдирд╛
рдпрджрд┐ рд╣рдо рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рдирд┐рдВрдЧ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рдмрдлрд╝рд░ рдХреИрд╢ рдкреНрд░рдмрдВрдзрдХ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЧрдП рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕реВрдЪрдирд╛ рдФрд░ рд╕рднреА рдЗрдВрдбреЗрдХреНрд╕ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЗрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рддрд░рд╣ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдЯреЗрдмрд▓ рдкреЗрдЬред

рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕, рдЬреИрд╕рд╛ рдХрд┐ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреГрд╖реНрдареЛрдВ (рдЧреНрд░реЗ рдЖрдпрддреЛрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
- рдореЗрдЯрд╛ рдкреЗрдЬ - рдкреЗрдЬ рдирдВрдмрд░ рд╢реВрдиреНрдп, рдЬрд┐рд╕рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред
- рдмрдХреЗрдЯ рдкреЗрдЬ - рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда, рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ "рд╣реИрд╢ рдХреЛрдб - рдЯреАрдЖрдИрдбреА" рдЬреЛрдбрд╝реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред
- рдУрд╡рд░рдлреНрд▓реЛ рдкреЗрдЬ - рдмрд╛рд▓реНрдЯреА рдкреЗрдЬреЛрдВ рдХреА рддрд░рд╣ рд╣реА рд╕рдВрд░рдЪрд┐рдд рдФрд░ рдЬрдм рдПрдХ рдкреЗрдЬ рдПрдХ рдмрд╛рд▓реНрдЯреА рдХреЗ рд▓рд┐рдП рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
- рдмрд┐рдЯрдореИрдк рдкреГрд╖реНрда - рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдкреГрд╖реНрдареЛрдВ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рдмрд╛рд▓реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдкрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдбрд╛рдЙрди рдПрд░реЛ рдЯреАрдЖрдИрдбреА тАЛтАЛрдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛рдиреА рдЯреЗрдмрд▓ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред
рд╣рд░ рдмрд╛рд░ рдЬрдм рдЗрдВрдбреЗрдХреНрд╕ рдмрдврд╝рддрд╛ рд╣реИ, рддреЛ PostgreSQL рддреБрд░рдВрдд рдХрдИ рдмрд╛рд░ (рдФрд░ рдЗрд╕рд▓рд┐рдП, рдкреЗрдЬ) рджреЛ рдмрд╛рд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдЖрд╡рдВрдЯрди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрд╕реНрдХрд░рдг 10 рдиреЗ рдЖрдХрд╛рд░ рдХреЛ рдЕрдзрд┐рдХ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рдпрд╛ред рдУрд╡рд░рдлреНрд▓реЛ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдЬрд░реВрд░рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реА рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд┐рдЯрдореИрдк рдкреЗрдЬреЛрдВ рдореЗрдВ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЖрд╡рдВрдЯрд┐рдд рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдЖрдХрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рдШрдЯ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдХреБрдЫ рдЕрдиреБрдХреНрд░рдорд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдмрд╛рд░ рдЖрдмрдВрдЯрд┐рдд рдкреГрд╖реНрда рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ VACUUMING рдХреЗ рдмрд╛рдж рдирдП рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рд╕реВрдЪрдХрд╛рдВрдХ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк REINDEX рдпрд╛ VACUUM FULL рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдм рд╕реЗ рд╣рдо рд╣рд╡рд╛рдИ рдкрд░рд┐рд╡рд╣рди
рдХреЗ рдбреЗрдореЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЗрд╕ рдмрд╛рд░ рд╣рдо рдЙрдбрд╝рд╛рдиреЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
demo=# create index on flights using hash(flight_no);
WARNING: hash indexes are not WAL-logged and their use is discouraged CREATE INDEX
demo=# explain (costs off) select * from flights where flight_no = 'PG0001';
QUERY PLAN ---------------------------------------------------- Bitmap Heap Scan on flights Recheck Cond: (flight_no = 'PG0001'::bpchar) -> Bitmap Index Scan on flights_flight_no_idx Index Cond: (flight_no = 'PG0001'::bpchar) (4 rows)
рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рд░рд╛рдЗрдЯ-рдлреЙрд░рд╡рд░реНрдб рд▓реЙрдЧ рдореЗрдВ рджрд░реНрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрдпреВрдПрд▓ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рддреЗ рд╕рдордп рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ)ред рдкрд░рд┐рдгрд╛рдо рдореЗрдВ, рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдореЗрдВ "рдмреА-рдЯреНрд░реА" рд╕реЗ рдХрд╛рдлреА рдиреАрдЪреЗ рд╣реИ, рдФрд░ рдЗрд╕рдХреА рджрдХреНрд╖рддрд╛ рднреА рд╕рдВрджрд┐рдЧреНрдз рд╣реИред рдЗрд╕рд▓рд┐рдП рдЕрдм рдРрд╕реЗ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЗрд╕ рд╢рд░рдж рдЛрддреБ (2017) рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд▓реНрдж рд╣реА рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдПрдХ рдмрд╛рд░ PostgreSQL рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 10 рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рджред рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд░рд╛рдЗрдЯ-рдлреЙрд░рд╡рд░реНрдб рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдорд┐рд▓рд╛; рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╕рдорд╡рд░реНрддреА рдХрд╛рд░реНрдп рдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред
рдпрд╣ рд╕рдЪ рд╣реИред рдЪреВрдВрдХрд┐ PostgreSQL 10 рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдорд┐рд▓рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЪреЗрддрд╛рд╡рдиреА рдЕрдм рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред
рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдирд╛рдкрд╕рдВрдж рдХрд░рдирд╛
рд▓реЗрдХрд┐рди рдХрднреА рднреА рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрдпреВрдПрд▓ рдХреЗ рдмрд╣реБрдд рдЬрдиреНрдо рд╕реЗ рд▓рдЧрднрдЧ 9.6 рддрдХ рдЕрдиреБрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рд╕реЗ рдХреНрдпреЛрдВ рдмрдЪ рдЧрдпрд╛? рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ DBMS рд╣реИрд╢рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣реИрд╢ рдЬреЙрдиреНрд╕ рдФрд░ рдЧреНрд░реБрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП), рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреМрди рд╕реЗ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдкрддреНрд░рд╛рдЪрд╛рд░ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рдмрд╛рд░ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ PostgreSQL рдордХреНрдЦреА рдкрд░ рдирдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╣реИрд╢ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдкрддреНрд░рд╛рдЪрд╛рд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдСрдкрд░реЗрдЯрд░ рдкрд░рд┐рд╡рд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдПрдХ рд╕рдВрдШ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
demo=# select opf.opfname as opfamily_name, amproc.amproc::regproc AS opfamily_procedure from pg_am am, pg_opfamily opf, pg_amproc amproc where opf.opfmethod = am.oid and amproc.amprocfamily = opf.oid and am.amname = 'hash' order by opfamily_name, opfamily_procedure;
opfamily_name | opfamily_procedure --------------------+-------------------- abstime_ops | hashint4 aclitem_ops | hash_aclitem array_ops | hash_array bool_ops | hashchar ...
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдЪрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдХреЛрдб рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╣реИрд╢рдЯреЗрдХреНрд╕реНрдЯ" рдлрд╝рдВрдХреНрд╢рди рдпрджрд┐ "text_ops" рдСрдкрд░реЗрдЯрд░ рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
demo=# select hashtext('one');
hashtext ----------- 127722028 (1 row)
demo=# select hashtext('two');
hashtext ----------- 345620034 (1 row)
рдЧреБрдг
рдЖрдЗрдП рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ, рдЬрд╣рд╛рдВ рдпрд╣ рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдкрдиреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рд╣рдордиреЗ
рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдкреВрдЫрддрд╛рдЫ рдкреНрд░рджрд╛рди рдХреА
рдереА ред рдЕрдм рд╣рдо рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗ:
name | pg_indexam_has_property ---------------+------------------------- can_order | f can_unique | f can_multi_col | f can_exclude | t name | pg_index_has_property ---------------+----------------------- clusterable | f index_scan | t bitmap_scan | t backward_scan | t 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
рдПрдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдСрд░реНрдбрд░ рд░рд┐рд▓реЗрд╢рди рдХреЛ рдмрд░рдХрд░рд╛рд░ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ: рдпрджрд┐ рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдорд╛рди рджреВрд╕рд░реА рдХреБрдВрдЬреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЫреЛрдЯрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд┐рд╕реА рднреА рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреБрдВрдЬреА рд╕реНрд╡рдпрдВ рдХреИрд╕реЗ рдСрд░реНрдбрд░ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдПрдХрдорд╛рддреНрд░ рдСрдкрд░реЗрд╢рди "рдмрд░рд╛рдмрд░" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
demo=# select opf.opfname AS opfamily_name, amop.amopopr::regoperator AS opfamily_operator from pg_am am, pg_opfamily opf, pg_amop amop where opf.opfmethod = am.oid and amop.amopfamily = opf.oid and am.amname = 'hash' order by opfamily_name, opfamily_operator;
opfamily_name | opfamily_operator ---------------+---------------------- abstime_ops | =(abstime,abstime) aclitem_ops | =(aclitem,aclitem) array_ops | =(anyarray,anyarray) bool_ops | =(boolean,boolean) ...
рдирддреАрдЬрддрди, рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдбреЗрдЯрд╛ ("рдХреИрди_рдСрд░реНрдбрд░", "рдСрд░реНрдбрд░реЗрдмрд▓") рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдПрдХ рд╣реА рдХрд╛рд░рдг рд╕реЗ NULLs рдореЗрдВ рдХреЛрдИ рд╣реЗрд░рдлреЗрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: NULL ("search_nulls") рдХреЗ рд▓рд┐рдП "рдмрд░рд╛рдмрд░" рдСрдкрд░реЗрд╢рди рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
рдЪреВрдВрдХрд┐ рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдХреАрдЬрд╝ рдХреЛ рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрдирдХреЗ рд╣реИрд╢ рдХреЛрдб), рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдВрдбреЗрдХреНрд╕-рдУрдирд▓реА рдПрдХреНрд╕реЗрд╕ ("рд░рд┐рдЯрд░реНрдиреЗрдмрд▓") рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐ рдорд▓реНрдЯреА-рдХреЙрд▓рдо рдЗрдВрдбреЗрдХреНрд╕ ("can_multi_col") рдХрд╛ рднреА рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИред
internals
рд╕рдВрд╕реНрдХрд░рдг 10 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, "
рдкреЗрдЬрдЗрдиреНрд╕реНрдкреЗрдХреНрдЯ " рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рдЗрдВрдЯрд░реНрдирд▓ рдореЗрдВ рджреЗрдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:
demo=# create extension pageinspect;
рдореЗрдЯрд╛ рдкреЗрдЬ (рд╣рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдореИрдХреНрд╕рд┐рдорд▓ рдпреВрдЬреНрдб рдмрдХреЗрдЯ рдирдВрдмрд░ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ):
demo=# select hash_page_type(get_raw_page('flights_flight_no_idx',0));
hash_page_type ---------------- metapage (1 row)
demo=# select ntuples, maxbucket from hash_metapage_info(get_raw_page('flights_flight_no_idx',0));
ntuples | maxbucket ---------+----------- 33121 | 127 (1 row)
рдПрдХ рдмрдХреЗрдЯ рдкреЗрдЬ (рд╣рдореЗрдВ рд▓рд╛рдЗрд╡ рдЯреНрдпреВрдкрд▓реНрд╕ рдФрд░ рдбреЗрдб рдЯреНрдпреВрдкрд▓реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ, рдпрд╛рдиреА рдЬрд┐рдиреНрд╣реЗрдВ рд╡реИрдХреНрдпреВрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ):
demo=# select hash_page_type(get_raw_page('flights_flight_no_idx',1));
hash_page_type ---------------- bucket (1 row)
demo=# select live_items, dead_items from hash_page_stats(get_raw_page('flights_flight_no_idx',1));
live_items | dead_items ------------+------------ 407 | 0 (1 row)
рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдмрд┐рдирд╛ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдЕрд░реНрде рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ
README рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдкрд░ рдкрдврд╝реЗрдВ ред