рдЬрд╛рд╡рд╛ рдбреЗрд╡реНрд╣рд▓рдкрд░рдЪреНрдпрд╛ рдирдЬрд░реЗрддреВрди PostgreSQL рдордзреАрд▓ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдЪреЗ рдЖрд░реЛрдЧреНрдп

рдирдорд╕реНрдХрд╛рд░

рдорд╛рдЭреЗ рдирд╛рд╡ рд╡рд╛рдиреНрдпрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдореА рдЬрд╛рд╡рд╛ рдбреЗрд╡реНрд╣рд▓рдкрд░ рдЖрд╣реЗ. рдЕрд╕реЗ рдШрдбрддреЗ рдХреА рдореА PostgreSQL рд╕рд╣ рдЦреВрдк рдХрд╛рдо рдХрд░рддреЛ - рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрдЯ рдХрд░рдгреЗ, рд░рдЪрдирд╛, рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ рдЖрдгрд┐ рдЖрдард╡рдбреНрдпрд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдереЛрдбреЗ DBA рдЦреЗрд│рдгреЗ.

рдЕрд▓реАрдХрдбреЗ рдореА рдЖрдордЪреНрдпрд╛ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдордзреНрдпреЗ рдЕрдиреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдиреАрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рдЬрд╛рд╡рд╛ рд▓рд╛рдпрдмреНрд░рд░реА рд▓рд┐рд╣рд┐рд▓реА рдЖрд╣реЗ pg-рдЗрдВрдбреЗрдХреНрд╕-рдЖрд░реЛрдЧреНрдп, рдЬреЗ рд╣реЗ рдХрд╛рдо рд╕реЛрдкреЗ рдХрд░рддреЗ, рдорд╛рдЭрд╛ рд╡реЗрд│ рд╡рд╛рдЪрд╡рддреЗ рдЖрдгрд┐ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХрд╛рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЪреБрдХрд╛ рдЯрд╛рд│рдгреНрдпрд╛рд╕ рдорд▓рд╛ рдорджрдд рдХрд░рддреЗ. рдпрд╛рдЪ рд▓рд╛рдпрдмреНрд░рд░реАрдмрджреНрджрд▓ рдЖрдкрдг рдЖрдЬ рдмреЛрд▓рдгрд╛рд░ рдЖрд╣реЛрдд.

рдЬрд╛рд╡рд╛ рдбреЗрд╡реНрд╣рд▓рдкрд░рдЪреНрдпрд╛ рдирдЬрд░реЗрддреВрди PostgreSQL рдордзреАрд▓ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдЪреЗ рдЖрд░реЛрдЧреНрдп

рдЬрдмрд╛рдмрджрд╛рд░реА рдирд╛рдХрд╛рд░рдгреЗ

PostgreSQL рдЪреА рдореБрдЦреНрдп рдЖрд╡реГрддреНрддреА рдореА рдЬреНрдпрд╛рд╡рд░ рдХрд╛рдо рдХрд░рддреЛ рддреА 10 рдЖрд╣реЗ. рдореА рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ SQL рдХреНрд╡реЗрд░реАрдВрдЪреА рдЖрд╡реГрддреНрддреА резрез рд╡рд░ рджреЗрдЦреАрд▓ рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЬрд╛рддреЗ. рдХрд┐рдорд╛рди рд╕рдорд░реНрдерд┐рдд рдЖрд╡реГрддреНрддреА 11 рдЖрд╣реЗ.

prehistory

рд╣реЗ рд╕рд░реНрд╡ рдЬрд╡рд│рдЬрд╡рд│ рдПрдХ рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реА рдорд╛рдЭреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рдЪрд┐рддреНрд░ рдкрд░рд┐рд╕реНрдерд┐рддреАрд╕рд╣ рд╕реБрд░реВ рдЭрд╛рд▓реЗ: рдирд┐рд│реНрдпрд╛рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдЪреА рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдирд┐рд░реНрдорд┐рддреА рддреНрд░реБрдЯреАрд╕рд╣ рд╕рдорд╛рдкреНрдд рдЭрд╛рд▓реА. рдЗрдВрдбреЗрдХреНрд╕ рд╕реНрд╡рддрдГ рдиреЗрд╣рдореАрдкреНрд░рдорд╛рдгреЗрдЪ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЕрд╡реИрдз рд╕реНрдерд┐рддреАрдд рд░рд╛рд╣рд┐рд▓рд╛. рд▓реЙрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рдиреЗ рдХрдорддрд░рддрд╛ рджрд░реНрд╢рд╡рд┐рд▓реА temp_file_limit. рдЖрдгрд┐ рдЖрдореНрд╣реА рдирд┐рдШрд╛рд▓реЛ... рдЦреЛрд▓рд╡рд░ рдЦреЛрджрддрд╛рдирд╛, рдорд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреАрд▓ рд╕рдорд╕реНрдпрд╛рдВрдЪрд╛ рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╕рдореВрд╣ рд╕рд╛рдкрдбрд▓рд╛ рдЖрдгрд┐, рдорд╛рдЭреНрдпрд╛ рдЖрд╕реНрддреАрди рдЧреБрдВрдбрд╛рд│рдд, рдорд╛рдЭреНрдпрд╛ рдбреЛрд│реНрдпрд╛рдВрдд рдЪрдордХ рдЖрдгреВрди рддреНрдпрд╛ рд╕реЛрдбрд╡рд╛рдпрд▓рд╛ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА.

рд╕рдорд╕реНрдпрд╛ рдПрдХ - рдбреАрдлреЙрд▓реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди

рдХреЙрдлреА рдореЗрдХрд░рд╡рд░ рдЪрд╛рд▓рд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрдгрд╛рд▒реНрдпрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕рдЪреНрдпрд╛ рд░реВрдкрдХрд╛рддреВрди рдХрджрд╛рдЪрд┐рдд рдкреНрд░рддреНрдпреЗрдХрдЬрдг рдХрдВрдЯрд╛рд│рд▓рд╛ рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ... рдбреАрдлреЙрд▓реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЦрд░реЛрдЦрд░рдЪ рдЕрдиреЗрдХ рдкреНрд░рд╢реНрди рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ. рдХрдореАрддрдХрдореА, рддреНрдпрд╛рдХрдбреЗ рд▓рдХреНрд╖ рджреЗрдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ рджреЗрдЦрднрд╛рд▓_рдХрд╛рд░реНрдп_рдореЗрдо, temp_file_limit, рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ_рдЯрд╛рдЗрдордЖрдЙрдЯ ╨╕ рд▓реЙрдХ_рдЯрд╛рдЗрдордЖрдЙрдЯ.

рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рджреЗрдЦрднрд╛рд▓_рдХрд╛рд░реНрдп_рдореЗрдо рдбреАрдлреЙрд▓реНрдЯ 64 MB рд╣реЛрддреЗ, рдЖрдгрд┐ temp_file_limit рд╕реБрдорд╛рд░реЗ 2 GB - рдореЛрдареНрдпрд╛ рдЯреЗрдмрд▓рд╡рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдкреБрд░реЗрд╢реА рдореЗрдорд░реА рдирд╡реНрд╣рддреА.

рдореНрд╣рдгреВрди, рдордзреНрдпреЗ pg-рдЗрдВрдбреЗрдХреНрд╕-рдЖрд░реЛрдЧреНрдп рдореА рдПрдХ рдорд╛рд▓рд┐рдХрд╛ рдЧреЛрд│рд╛ рдХреЗрд▓реА рдХреА, рдорд╛рдЭреНрдпрд╛ рдорддреЗ, рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реЗ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕.

рд╕рдорд╕реНрдпрд╛ рджреЛрди - рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛

рдЖрдордЪреЗ рдбреЗрдЯрд╛рдмреЗрд╕ SSD рдбреНрд░рд╛рдЗрд╡реНрд╣рд╡рд░ рд░рд╛рд╣рддрд╛рдд рдЖрдгрд┐ рдЖрдореНрд╣реА рд╡рд╛рдкрд░рддреЛ HA- рдПрдХрд╛рдзрд┐рдХ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░рд╛рдВрд╕рд╣ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди, рдорд╛рд╕реНрдЯрд░ рд╣реЛрд╕реНрдЯ рдЖрдгрд┐ n- рдкреНрд░рддрд┐рдХреГрддреАрдВрдЪреА рд╕рдВрдЦреНрдпрд╛. рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЕрддрд┐рд╢рдп рдореМрд▓реНрдпрд╡рд╛рди рд╕рдВрд╕рд╛рдзрди рдЖрд╣реЗ; рд╣реЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЖрдгрд┐ CPU рд╡рд╛рдкрд░рд╛рдкреЗрдХреНрд╖рд╛ рдХрдореА рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рдПрдХреАрдХрдбреЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдЬрд▓рдж рд╡рд╛рдЪрдирд╛рд╕рд╛рдареА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ, рдЖрдгрд┐ рджреБрд╕рд░реАрдХрдбреЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкрд╛рд╣реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реАрдд, рдХрд╛рд░рдг рддреЗ рдЬрд╛рдЧрд╛ рдЦрд╛рддрд╛рдд рдЖрдгрд┐ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдгреЗ рдХрдореА рдХрд░рддрд╛рдд.

рдЖрдгрд┐ рдЖрддрд╛, рд╕рд░реНрд╡рдХрд╛рд╣реА рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ рдЕрд╡реИрдз рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЖрдгрд┐ рдкреБрд░реЗрд╕реЗ рдкрд╛рд╣рд┐рд▓реЗ рдУрд▓реЗрдЧ рдмрд╛рд░реНрдЯреБрдиреЛрд╡реНрд╣ рдпрд╛рдВрдиреА рдЕрд╣рд╡рд╛рд▓ рджрд┐рд▓рд╛, рдореА рдПрдХ "рдорд╣рд╛рди" рд╢реБрджреНрдзреАрдХрд░рдг рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рд╡рд┐рдХрд╕рдХрд╛рдВрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рд╡рд╛рдЪрдгреЗ рдЖрд╡рдбрдд рдирд╛рд╣реА. рддреНрдпрд╛рдВрдирд╛ рддреЗ рдлрд╛рд░рд╕реЗ рдЖрд╡рдбрдд рдирд╛рд╣реА. рдпрд╛рдореБрд│реЗ, рджреЛрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯреА рдЙрджреНрднрд╡рддрд╛рдд - рдкреНрд░рд╛рдердорд┐рдХ рдХреА рд╡рд░ рд╕реНрд╡рд╣рд╕реНрддреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЖрдгрд┐ рдЕрдирдиреНрдп рд╕реНрддрдВрднрд╛рд╡рд░ рд╕рдорд╛рди "рдореЕрдиреНрдпреБрдЕрд▓" рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛. рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЕрд╢реА рдЖрд╣реЗ рдХреА рддреНрдпрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА - рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рд╕рд░реНрд╡рдХрд╛рд╣реА рд╕реНрд╡рддрдГрдЪ рдХрд░реЗрд▓. рдЕрд╢рд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рд╣рдЯрд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдпрд╛ рдЙрджреНрджреЗрд╢рд╛рд╕рд╛рдареА рдирд┐рджрд╛рди рджрд┐рд╕реВрди рдЖрд▓реЗ рдЖрд╣реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ_рдЗрдВрдбреЗрдХреНрд╕.

рд╕рдорд╕реНрдпрд╛ рддреАрди - рдПрдХрдореЗрдХрд╛рдВрдирд╛ рдЫреЗрджрдгрд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ

рдмрд╣реБрддреЗрдХ рдирд╡рд╢рд┐рдХреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рдХ рдПрдХрд╛рдЪ рд╕реНрддрдВрднрд╛рд╡рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░рддрд╛рдд. рд╣рд│реВрд╣рд│реВ, рдпрд╛ рд╡реНрдпрд╡рд╕рд╛рдпрд╛рдЪрд╛ рдкреВрд░реНрдг рдЕрдиреБрднрд╡ рдШреЗрддрд▓реНрдпрд╛рдирдВрддрд░, рд▓реЛрдХ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░реВ рд▓рд╛рдЧрддрд╛рдд рдЖрдгрд┐ рдЕрдиреЗрдХ рд╕реНрддрдВрднрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЬреЛрдбреВ рд▓рд╛рдЧрддрд╛рдд. рд╕реНрддрдВрднрд╛рдВрд╡рд░реАрд▓ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рджрд┐рд╕рддрд╛рдд A, рдП + рдмреА, A+B+C рдЖрдгрд┐ рдЕрд╕реЗрдЪ. рдпрд╛рдкреИрдХреА рдкрд╣рд┐рд▓реЗ рджреЛрди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рдмрд╛рд╣реЗрд░ рдЯрд╛рдХрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдХрд╛рд░рдг рддреЗ рддрд┐рд╕рд▒реНрдпрд╛рдЪреЗ рдЙрдкрд╕рд░реНрдЧ рдЖрд╣реЗрдд. рд╣реЗ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕рдЪреА рдЦреВрдк рдмрдЪрдд рдХрд░рддреЗ рдЖрдгрд┐ рдпрд╛рд╕рд╛рдареА рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдЖрд╣реЗрдд intersected_indexes.

рд╕рдорд╕реНрдпрд╛ рдЪрд╛рд░ - рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрд╢рд┐рд╡рд╛рдп рдкрд░рджреЗрд╢реА рдХреА

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рддреБрдореНрд╣рд╛рд▓рд╛ рдмреЕрдХрд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд░рддрд╛ рдкрд░рджреЗрд╢реА рдХреА рдорд░реНрдпрд╛рджрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдмрд▒реНрдпрд╛рдЪ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдордзреНрдпреЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рдирд╛рд╣реА, рдЖрдгрд┐ рдХрджрд╛рдЪрд┐рдд рдкреНрд░рдХрдЯрд╣реА рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА... рд╕рдзреНрдпрд╛рддрд░реА...

рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрддрд╣реА рдЕрд╕реЗрдЪ рд╣реЛрддреЗ: рдХрд╛рд╣реА рд╡реЗрд│рд╛ рдПрдЦрд╛рджреЗ рдХрд╛рдо, рд╡реЗрд│рд╛рдкрддреНрд░рдХрд╛рдиреБрд╕рд╛рд░ рдЪрд╛рд▓рдгрд╛рд░реЗ рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдСрд░реНрдбрд░рдЪрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╛рдл рдХрд░рдгреЗ, рдорд╛рд╕реНрдЯрд░ рд╣реЛрд╕реНрдЯрджреНрд╡рд╛рд░реЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА "рдЬреЛрдбрд▓реЗ" рдЬрд╛рдК рд▓рд╛рдЧрд▓реЗ. CPU рдЖрдгрд┐ IO рд╡рд╛рдпрд╛ рдЧреЗрд▓реЗ, рд╡рд┐рдирдВрддреНрдпрд╛ рдХрдореА рдЭрд╛рд▓реНрдпрд╛ рдЖрдгрд┐ рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЭрд╛рд▓реЗ, рд╕реЗрд╡рд╛ рдкрд╛рдЪрд╢реЗ рд╣реЛрддреА. рджреНрд░реБрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг pg_stat_activity рдЕрд╕реЗ рдкреНрд░рд╢реНрди рджрд░реНрд╢рд╡рд▓реЗ:

delete from <table> where id in (тАж)

рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЕрд░реНрдерд╛рддрдЪ, рд▓рдХреНрд╖реНрдп рд╕рд╛рд░рдгреАрдордзреНрдпреЗ рдЖрдпрдбреАрдиреБрд╕рд╛рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╣реЛрддреА рдЖрдгрд┐ рдкрд░рд┐рд╕реНрдерд┐рддреАрдиреБрд╕рд╛рд░ рдлрд╛рд░рдЪ рдХрдореА рд░реЗрдХреЙрд░реНрдб рд╣рдЯрд╡рд┐рд▓реЗ рдЧреЗрд▓реЗ. рдЕрд╕реЗ рд╡рд╛рдЯрд▓реЗ рдХреА рд╕рд░реНрд╡рдХрд╛рд╣реА рдХрд╛рд░реНрдп рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рдкрд░рдВрддреБ, рдЕрд░реЗрд░реЗ, рддрд╕реЗ рдЭрд╛рд▓реЗ рдирд╛рд╣реА.

рдЖрд╢реНрдЪрд░реНрдпрдХрд╛рд░рдХ рдмрдЪрд╛рд╡рд╛рд╕рд╛рдареА рдЖрд▓реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реНрдкрд╖реНрдЯ рдХрд░рд╛ рдЖрдгрд┐ рдореНрд╣рдгрд╛рд▓реЗ рдХреА рд▓рдХреНрд╖реНрдп рддрдХреНрддреНрдпрд╛рддреАрд▓ рд░реЗрдХреЙрд░реНрдб рд╣рдЯрд╡рдгреНрдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдПрдХ рд╕рдВрджрд░реНрдн рдЕрдЦрдВрдбрддрд╛ рддрдкрд╛рд╕рдгреА рджреЗрдЦреАрд▓ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдЯреЗрдмрд▓рд╛рдВрдкреИрдХреА рдПрдХрд╛рд╡рд░ рд╣реА рддрдкрд╛рд╕рдгреА рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реА рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдХреЕрди рдпреЛрдЧреНрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдЪреНрдпрд╛ рдЕрднрд╛рд╡рд╛рдореБрд│реЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдирд┐рджрд╛рдирд╛рдЪрд╛ рдЬрдиреНрдо рдЭрд╛рд▓рд╛ рд╡рд┐рджреЗрд╢реА_рдХреА_рд╡рд┐рдирд╛_рдЗрдВрдбреЗрдХреНрд╕.

рд╕рдорд╕реНрдпрд╛ рдкрд╛рдЪ - рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдордзреНрдпреЗ рд╢реВрдиреНрдп рдореВрд▓реНрдп

рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕рдордзреНрдпреЗ btree рдЗрдВрдбреЗрдХреНрд╕реЗрд╕рдордзреНрдпреЗ рд╢реВрдиреНрдп рдореВрд▓реНрдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕рддреЛ, рдкрд░рдВрддреБ рддреЗрдереЗ рддреНрдпрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рддреЗ. рдореНрд╣рдгреВрди, рдореА рдкрд░рд┐рд╢реНрд░рдордкреВрд░реНрд╡рдХ рд╣реЗ рд╢реВрдиреНрдп (рдирд┐рджрд╛рди indexes_with_null_values), рдкреНрд░рдХрд╛рд░рд╛рдиреБрд╕рд╛рд░ рд░рджреНрдж рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рд╕реНрддрдВрднрд╛рдВрд╡рд░ рдЖрдВрд╢рд┐рдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ where <A> is not null. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдореА рдЖрдордЪреНрдпрд╛ рдПрдХрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдЪрд╛ рдЖрдХрд╛рд░ 1877 MB рд╡рд░реВрди 16 KB рдкрд░реНрдпрдВрдд рдХрдореА рдХрд░реВ рд╢рдХрд▓реЛ. рдЖрдгрд┐ рдПрдХрд╛ рд╕реЗрд╡реЗрдордзреНрдпреЗ, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдордзреВрди рд╢реВрдиреНрдп рдореВрд▓реНрдпреЗ рд╡рдЧрд│рд▓реНрдпрд╛рдореБрд│реЗ рдбреЗрдЯрд╛рдмреЗрд╕рдЪрд╛ рдЖрдХрд╛рд░ рдПрдХреВрдг 16% (рдирд┐рд░рдкреЗрдХреНрд╖ рд╕рдВрдЦреНрдпреЗрдд 4.3 GB рдиреЗ) рдХрдореА рдЭрд╛рд▓рд╛. рдЕрддрд┐рд╢рдп рд╕реЛрдкреНрдпрд╛ рд╕реБрдзрд╛рд░рдгрд╛рдВрд╕рд╣ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕рдордзреНрдпреЗ рдкреНрд░рдЪрдВрдб рдмрдЪрдд. ЁЯЩВ

рд╕рдорд╕реНрдпрд╛ рд╕рд╣рд╛ - рдкреНрд░рд╛рдердорд┐рдХ рдХрд│рд╛рдВрдЪрд╛ рдЕрднрд╛рд╡

рдпрдВрддреНрд░рдгреЗрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдореБрд│реЗ Postgres рдордзреНрдпреЗ MVCC рдЕрд╢реА рдкрд░рд┐рд╕реНрдерд┐рддреА рд╢рдХреНрдп рдЖрд╣реЗ рдлреБрд▓рдгреЗрдЬреЗрд╡реНрд╣рд╛ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдореГрдд рд░реЗрдХреЙрд░реНрдбрдореБрд│реЗ рддреБрдордЪреНрдпрд╛ рдЯреЗрдмрд▓рдЪрд╛ рдЖрдХрд╛рд░ рд╡реЗрдЧрд╛рдиреЗ рд╡рд╛рдврдд рдЖрд╣реЗ. рдорд▓рд╛ рднреЛрд│реЗрдкрдгрд╛рдиреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реЛрддрд╛ рдХреА рдпрд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдзреЛрдХрд╛ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА рдЖрдгрд┐ рд╣реЗ рдЖрдордЪреНрдпрд╛ рддрд│рд╛рд╢реА рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА, рдХрд╛рд░рдг рдЖрдореНрд╣реА, рд╡реНрд╡рд╛!!!, рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд╛рд╕рдХ рдЖрд╣реЛрдд... рдореА рдХрд┐рддреА рдореВрд░реНрдЦ рдЖрдгрд┐ рднреЛрд│рд╛ рд╣реЛрддреЛ...

рдПрдХреЗ рджрд┐рд╡рд╢реА, рдПрдХрд╛ рдЕрджреНрднреБрдд рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдиреЗ рдореЛрдареНрдпрд╛ рдЖрдгрд┐ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рдЯреЗрдмрд▓рдордзреАрд▓ рд╕рд░реНрд╡ рд░реЗрдХреЙрд░реНрдб рдШреЗрддрд▓реЗ рдЖрдгрд┐ рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗ. рдЖрдореНрд╣рд╛рд▓рд╛ рдирд┐рд│реНрдпрд╛ рд░рдВрдЧрд╛рдд рдЯреЗрдмрд▓ рдЖрдХрд╛рд░рд╛рдд +100 GB рдорд┐рд│рд╛рд▓реЗ. рд╣реА рдЕрддреНрдпрдВрдд рд▓рд╛рдЬрд┐рд░рд╡рд╛рдгреА рдЧреЛрд╖реНрдЯ рд╣реЛрддреА, рдкрд░рдВрддреБ рдЖрдордЪреА рдЧреИрд░рд╕реЛрдп рддрд┐рдереЗрдЪ рд╕рдВрдкрд▓реА рдирд╛рд╣реА. рдпрд╛ рдЯреЗрдмрд▓рд╡рд░реАрд▓ рдСрдЯреЛрд╡реНрд╣реЕрдХреНрдпреВрдо 15 рддрд╛рд╕рд╛рдВрдирдВрддрд░ рд╕рдВрдкрд▓реНрдпрд╛рдирдВрддрд░, рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЭрд╛рд▓реЗ рдХреА рднреМрддрд┐рдХ рд╕реНрдерд╛рди рдкрд░рдд рдпреЗрдгрд╛рд░ рдирд╛рд╣реА. рдЖрдореНрд╣реА рд╕реЗрд╡рд╛ рдерд╛рдВрдмрд╡реВ рд╢рдХрдд рдирд╛рд╣реА рдЖрдгрд┐ рд╡реНрд╣реЕрдХреНрдпреВрдо рдкреВрд░реНрдг рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ pg_repack. рдЖрдгрд┐ рдордЧ рддреЗ рдмрд╛рд╣реЗрд░ рд╡рд│рд▓реЗ pg_repack рдкреНрд░рд╛рдердорд┐рдХ рдХреА рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯрддреЗрдЪреНрдпрд╛ рдмрдВрдзрдирд╛рд╢рд┐рд╡рд╛рдп рдЯреЗрдмрд▓реНрд╕рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╢реА рдХрд░рд╛рдпрдЪреА рд╣реЗ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рдЯреЗрдмрд▓рдордзреНрдпреЗ рдкреНрд░рд╛рдердорд┐рдХ рдХреА рдирд╡реНрд╣рддреА. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдирд┐рджрд╛рдирд╛рдЪрд╛ рдЬрдиреНрдо рдЭрд╛рд▓рд╛ tables_without_primary_key.

рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ 0.1.5 рдЯреЗрдмрд▓ рдЖрдгрд┐ рдЗрдВрдбреЗрдХреНрд╕рдЪреНрдпрд╛ рдмреНрд▓реЛрдЯрдордзреВрди рдбреЗрдЯрд╛ рдЧреЛрд│рд╛ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рддреНрдпрд╛рд▓рд╛ рд╡реЗрд│реЗрд╡рд░ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ.

рд╕рд╛рдд рдЖрдгрд┐ рдЖрда рд╕рдорд╕реНрдпрд╛ - рдЕрдкреБрд░реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЖрдгрд┐ рди рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ

рдЦрд╛рд▓реАрд▓ рджреЛрди рдирд┐рджрд╛рди рдЖрд╣реЗрдд: tables_with_missing_indexes ╨╕ unused_indexes - рддреБрд▓рдиреЗрдиреЗ рдЕрд▓реАрдХрдбреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЕрдВрддрд┐рдо рд╕реНрд╡рд░реВрдкрд╛рдд рджрд┐рд╕реВ рд▓рд╛рдЧрд▓реЗ. рдореБрджреНрджрд╛ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рддреЗ рдлрдХреНрдд рдШреЗрддрд▓реЗ рдЖрдгрд┐ рдЬреЛрдбрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реАрдд.

рдореА рдЖрдзреАрдЪ рд▓рд┐рд╣рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдЖрдореНрд╣реА рдЕрдиреЗрдХ рдкреНрд░рддрд┐рдХреГрддреАрдВрд╕рд╣ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡рд╛рдкрд░рддреЛ рдЖрдгрд┐ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╣реЛрд╕реНрдЯрд╡рд░реАрд▓ рд╡рд╛рдЪрди рд▓реЛрдб рдореВрд▓рднреВрддрдкрдгреЗ рднрд┐рдиреНрди рдЖрд╣реЗ. рдкрд░рд┐рдгрд╛рдореА, рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╢реА рджрд┐рд╕реВрди рдпреЗрддреЗ рдХреА рдХрд╛рд╣реА рд╣реЛрд╕реНрдЯрд╡рд░реАрд▓ рдХрд╛рд╣реА рд╕рд╛рд░рдгреНрдпрд╛ рдЖрдгрд┐ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрд░рд┐рддреНрдпрд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдд рдирд╛рд╣реАрдд рдЖрдгрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рд╕рд░реНрд╡ рд╣реЛрд╕реНрдЯрдХрдбреВрди рдЖрдХрдбреЗрд╡рд╛рд░реА рдЧреЛрд│рд╛ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдХрдбреЗрд╡рд╛рд░реА рд░реАрд╕реЗрдЯ рдХрд░рд╛ рд╣реЗ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рд╣реЛрд╕реНрдЯрд╡рд░ рджреЗрдЦреАрд▓ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ; рдЖрдкрдг рд╣реЗ рдХреЗрд╡рд│ рдорд╛рд╕реНрдЯрд░рд╡рд░ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА.

рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдХрдзреАрд╣реА рди рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛рдвреВрди рддрд╕реЗрдЪ рдХреНрд╡рдЪрд┐рдд рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреНрдпреЗ рдЧрд╣рд╛рд│ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЬреЛрдбреВрди рдЕрдиреЗрдХ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рд╡рд╛рдЪрд╡рд┐рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджрд┐рд▓реА.

рдирд┐рд╖реНрдХрд░реНрд╖ рдореНрд╣рдгреВрди

рдЕрд░реНрдерд╛рдд, рдЬрд╡рд│рдЬрд╡рд│ рд╕рд░реНрд╡ рдирд┐рджрд╛рдирд╛рдВрд╕рд╛рдареА рдЖрдкрдг рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ рд╢рдХрддрд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдпрд╛рджреА. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдирд╡реАрди рддреНрд░реБрдЯреА рджрд┐рд╕рдгреНрдпрд╛рдкрд╛рд╕реВрди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░реВрди, рдЖрдкрдг рдЖрдкрд▓реНрдпрд╛ рдЕрд░реНрдЬрд╛рдордзреНрдпреЗ рддрдкрд╛рд╕рдгреНрдпрд╛ рддреНрд╡рд░рд┐рдд рд▓рд╛рдЧреВ рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдирдВрддрд░ рд╣рд│реВрд╣рд│реВ рдЬреБрдиреНрдпрд╛ рджреБрд░реБрд╕реНрдд рдХрд░реВ рд╢рдХрддрд╛.

рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд▓рд╛рдВрддрд░рд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рд▓рдЧреЗрдЪ рдХрд╛рд╣реА рдирд┐рджрд╛рди рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЖрдгрд┐ рд╣реЗ рдХрджрд╛рдЪрд┐рдд рдорд╛рдЭреНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рд╕рд░реНрд╡рд╛рдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ. рд╡рд╛рдкрд░рд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЗ рдбреЗрдореЛ.

рди рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдХрд┐рдВрд╡рд╛ рдЧрд╣рд╛рд│ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрд╕рд╛рдареА рддрд╕реЗрдЪ рдмреНрд▓реЛрдЯрд╕рд╛рдареА, рдХреЗрд╡рд│ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ рддрдкрд╛рд╕рдгреА рдХрд░рдгреЗ рдЕрд░реНрдердкреВрд░реНрдг рдЖрд╣реЗ. рд╕рдВрдХрд▓рд┐рдд рдореВрд▓реНрдпреЗ рд░реЗрдХреЙрд░реНрдб рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд рдХреНрд▓рд┐рдХрд╣рд╛рдКрд╕ рдХрд┐рдВрд╡рд╛ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордХрдбреЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддреЗ.

рдорд▓рд╛ рдЦрд░реЛрдЦрд░ рдЕрд╢реА рдЖрд╢рд╛ рдЖрд╣реЗ pg-рдЗрдВрдбреЗрдХреНрд╕-рдЖрд░реЛрдЧреНрдп рдЙрдкрдпреБрдХреНрдд рдЖрдгрд┐ рдорд╛рдЧрдгреА рдЕрд╕реЗрд▓. рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдкрдбрд▓реЗрд▓реНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪрд╛ рдЕрд╣рд╡рд╛рд▓ рджреЗрдКрди рдЖрдгрд┐ рдирд╡реАрди рдирд┐рджрд╛рди рд╕реБрдЪрд╡реВрди рддреБрдореНрд╣реА рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдд рдпреЛрдЧрджрд╛рди рджреЗрдК рд╢рдХрддрд╛.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛