рдкрд┐рдЫрд▓реА рд╢реНрд░реГрдВрдЦрд▓рд╛ PostgreSQL рдХреЗ
рдЕрд▓рдЧрд╛рд╡ рдФрд░ рдмрд╣реБ-рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдереА, рдФрд░ рдЖрдЬ рд╣рдо рд░рд╛рдЗрдЯ-рдлреЙрд░ рд▓реЙрдЧрд┐рдВрдЧ
рддрдВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ
рдореЗрдВ рдПрдХ рдирдИ рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬреЛ рдкрд╛рд╡реЗрд▓
рдкреНрд▓реБрдЬрд╝рдиреЛрд╡ рдФрд░ рдореИрдВ
рдХрд░рддреЗ рд╣реИрдВ , рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╢рдмреНрджрд╢рдГ рдирд╣реАрдВ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рдкрдврд╝рдиреЗ рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИрдВред
рдЗрд╕ рдЪрдХреНрд░ рдореЗрдВ рдЪрд╛рд░ рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ:
- рдмрдлрд░ рдХреИрд╢ (рдпрд╣ рд▓реЗрдЦ);
- рдкреНрд░рд░рдХреЛрд░реНрдб рдЬрд░реНрдирд▓ - рдпрд╣ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╕реВрд▓реА рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ - рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ;
- рдЯреНрдпреВрдирд┐рдВрдЧ рд▓реЙрдЧ - рд╕реНрддрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рдиред
рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реИ рдЬрд░реНрдирд▓рд┐рдВрдЧ?
рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдбреЗрдЯрд╛ рдХрд╛ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛ рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд░реИрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдбрд┐рд╕реНрдХ (рдпрд╛ рдЕрдиреНрдп рдЧреИрд░-рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдореАрдбрд┐рдпрд╛) рдХреЛ рдЖрд╕реНрдердЧрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдо рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рдХрдо рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдмрд┐рдЬрд▓реА рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИ рдпрд╛ рдЕрдЧрд░ DBMS рдХреЛрдб рдпрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ? рд░реИрдо рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдЦреЛ рдЬрд╛рдПрдЧреА, рдФрд░ рдХреЗрд╡рд▓ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рд╣реА рд░рд╣реЗрдЧрд╛ (рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдбрд┐рд╕реНрдХ рднреА рдкреАрдбрд╝рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмреИрдХрдЕрдк рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдорджрдж рдХрд░реЗрдЧреА)ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, I / O рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рд╕реНрдХ рдкрд░ рдбреЗрдЯрд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдмрд╣реБрдд рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реИ (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдлрд╛рдпрд░рдмрд░реНрдб рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ рдерд╛)ред
рдЖрдорддреМрд░ рдкрд░, PostgreSQL рд╕рд╣рд┐рдд, рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдЕрд╕рдВрдЧрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдЙрдмрд░рдиреЗ рдкрд░, рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрд░реНрдирд▓рд┐рдВрдЧ рдмрд╣реБрдд рд╣реА рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред
рдмрдлрд░ рдХреИрд╢
рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рд╣рдо рдПрдХ рдмрдлрд░ рдХреИрд╢ рдХреЗ рд╕рд╛рде рдЬрд░реНрдирд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред рдмрдлрд╝рд░ рдХреИрд╢ рдПрдХрдорд╛рддреНрд░ рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд░реИрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рдЬрдЯрд┐рд▓ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕рдордЭрдирд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдо рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВрдЧреЗ рдХрд┐ рд░реИрдо рдФрд░ рдбрд┐рд╕реНрдХ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдзреБрдирд┐рдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдХреЗрд▓реЗ рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рддреАрди рдпрд╛ рдЪрд╛рд░ рдХреИрд╢ рд╕реНрддрд░ рдЧрд┐рди рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рдореЗрдореЛрд░реА рдХреЗ рдмреАрдЪ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЕрдВрддрд░ рдХреЛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдХреИрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рддреЗрдЬрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдзреАрдорд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдЪреБрд░ рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╣реИред рддреЛ рдмрдлрд░ рдХреИрд╢ рд░реИрдо (рдиреИрдиреЛрд╕реЗрдХрдВрдбреНрд╕) рдФрд░ рдбрд┐рд╕реНрдХ (рдорд┐рд▓реАрд╕реЗрдХрдВрдб) рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рдордп рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рд╕реБрдЪрд╛рд░реВ рдХрд░рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрдХ рдХреИрд╢ рднреА рд╣реИ рдЬреЛ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдбреАрдмреАрдПрдордПрд╕ рдЖрдорддреМрд░ рдкрд░ рдУрдПрд╕ рдХреИрд╢ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП рд╕реАрдзреЗ рдбрд┐рд╕реНрдХ рддрдХ рдкрд╣реБрдВрдЪрдХрд░ рджреЛрд╣рд░реЗ рдХреИрд╢рд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди PostgreSQL рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ: рд╕рднреА рдбреЗрдЯрд╛ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрдврд╝рд╛ рдФрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд┐рд╕реНрдХ рдПрд░реЗ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбрд┐рд╕реНрдХ рднреА, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреИрд╢ рд╣реИрдВред рдпрд╣ рддрдереНрдп рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм рд╣рдо рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдЖрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рд╡рд╛рдкрд╕ DBMS рдмрдлрд░ рдХреИрд╢ рдХреЗ рд▓рд┐рдПред
рдЗрд╕реЗ рдЗрд╕рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣
рдмрдлрд╝рд░реНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдмрдлрд╝рд░ рдПрдХ рдбреЗрдЯрд╛ рдкреЗрдЬ (рдмреНрд▓реЙрдХ), рдФрд░ рдПрдХ рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рд╣реИред рд╢реАрд░реНрд╖рдХ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдмрдлрд░ рдореЗрдВ рдкреГрд╖реНрда рдХреА рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрдерд╛рди (рдЗрд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдмреНрд▓реЙрдХ рдирдВрдмрд░);
- рдПрдХ рд╕рдВрдХреЗрдд рдЬреЛ рдкреГрд╖реНрда рдкрд░ рдбреЗрдЯрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬрд▓реНрдж рд╣реА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдРрд╕реЗ рдмрдлрд░ рдХреЛ рдЧрдВрджрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ );
- рдмрдлрд░ рдХреЛ рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдЙрдкрдпреЛрдЧ рдЧрдгрдирд╛);
- рдмрдлрд░ рдХреЛ рдкрд┐рди рдХрд░рдиреЗ рдХрд╛ рдЭрдВрдбрд╛ (рдкрд┐рди рдХрд╛рдЙрдВрдЯ)ред
рдмрдлрд░ рдХреИрд╢ рд╕рд░реНрд╡рд░ рдХреА рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реИред рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдкрдврд╝реЗрдВ рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ, - рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдХреИрд╢ рдореЗрдВ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкрдврд╝рддреА рд╣реИрдВред рдЬрдмрдХрд┐ рдкреЗрдЬ рдХреИрд╢ рдореЗрдВ рд╣реИ, рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рд░реИрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдкрд░ рд╕реЗрд╡ рдХрд░рддреЗ рд╣реИрдВред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдХреИрд╢ рдореЗрдВ рдЦрд╛рд▓реА рдмрдлрд╝рд░реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЙрди рд╕рднреА рдХреЛ рдореБрдлреНрдд рдмрдлрд╝рд░реНрд╕ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред "рдЕрдЧрд▓реЗ рд╢рд┐рдХрд╛рд░" рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ рдХрд╛ рдЕрд░реНрде рдереЛрдбрд╝рд╛ рдмрд╛рдж рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдХреИрд╢ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдкреГрд╖реНрда рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреИрд╢ рдореЗрдВ рдкреЗрдЬ рдЦреЛрдЬреЗрдВ
рдЬрдм рдХрд┐рд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреГрд╖реНрда рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╡рд╣ рдкрд╣рд▓реЗ рдЗрд╕реЗ рд╣реИрд╢ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рд╣реИрд╢ рдХреА рдлрд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдлрд╛рдЗрд▓ рдирдВрдмрд░ рдФрд░ рдкреЗрдЬ рдирдВрдмрд░ рд╣реЛрддрд╛ рд╣реИред рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╕рдВрдмрдВрдзрд┐рдд рдЯреЛрдХрд░реА рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдлрд░ рдирдВрдмрд░ рдвреВрдВрдврддреА рд╣реИ рдФрд░ рдЬрд╛рдВрдЪрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдкреГрд╖реНрда рд╣реИред рдХрд┐рд╕реА рднреА рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде, рдпрд╣рд╛рдВ рдЯрдХрд░рд╛рд╡ рд╕рдВрднрд╡ рд╣реИ; рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрдИ рдкреГрд╖реНрдареЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред
рд╣реИрд╢ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЖрд▓реЛрдЪрдирд╛ рдХреА рдЬрд╛рддреА рд░рд╣реА рд╣реИред рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдЖрдкрдХреЛ рдкреГрд╖реНрда рдкрд░ рдмрдлрд░ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдвреВрдВрдврдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИ рдЕрдЧрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рддрд╛рд▓рд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд┐рдП рдЧрдП рд╕рднреА рдмрдлрд╝рд░реНрд╕ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдиреЗ рдЕрднреА рддрдХ рдПрдХ рдЕрдЪреНрдЫреЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рдкреЗрдЬ рдХреИрд╢ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд┐рди рдХрд╛рдЙрдВрдЯ рдмрдврд╝рд╛рдХрд░ рдмрдлрд░ рдХреЛ "рдлреНрд░реАрдЬ" рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХ рд╕рд╛рде рдРрд╕рд╛ рдХрд░ рд╕рдХрддреА рд╣реИрдВ)ред рдЬрдм рддрдХ рдмрдлрд░ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрд╛рдЙрдВрдЯрд░ рд╡реИрд▓реНрдпреВ рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ), рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдмрдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ "рдореМрд▓рд┐рдХ" рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреГрд╖реНрда рдореЗрдВ рд▓рд╛рдЗрди рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдмрд╣реБ-рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рджреГрд╢реНрдпрддрд╛ рдирд┐рдпрдореЛрдВ рдХреЗ рдХрд╛рд░рдг рдХрд┐рд╕реА рдХреЛ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рдкреЗрдЬ рдХреЛ рдкрд┐рди рдХрд┐рдП рдЧрдП рдмрдлрд░ рдореЗрдВ рдирд╣реАрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдмрд╛рд╣рд░ рднреАрдбрд╝ рд╣реЛ рд░рд╣реА рд╣реИ
рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкреГрд╖реНрда рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕реЗ рдбрд┐рд╕реНрдХ рд╕реЗ рдХреБрдЫ рдмрдлрд░ рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдХреИрд╢ рдореЗрдВ рдЕрднреА рднреА рдореБрдлреНрдд рдмрдлрд╝рд░реНрд╕ рд╣реИрдВ, рддреЛ рдкрд╣рд▓рд╛ рдлрд╝реНрд░реА рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рд╡реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ (рдЖрдорддреМрд░ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ) рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рдмрдлрд╝рд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛, рд╡рд╣рд╛рдВ рдкреЗрдЬ рдХреЛ рдмрд╛рд╣рд░ рдзрдХреЗрд▓ рджреЗрдВ рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдПрдХ рдирдпрд╛ рдкрдврд╝реЗрдВред
рдкреНрд░реАрдореЗрд╢рди рддрдВрддреНрд░ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдмрдлрд░ рдПрдХреНрд╕реЗрд╕ рд╣реЛрдиреЗ рдкрд░, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрдлрд░ рдХреЗ рд╣реЗрдбрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрдврд╝рд╛рддреА рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрди рдмрдлрд╝рд░реНрд╕ рдЬрд┐рдиреНрд╣реЗрдВ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рдХрд╛рдЙрдВрдЯрд░ рдореВрд▓реНрдп рдХрдо рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдмрд╛рд╣рд░ рднреАрдбрд╝ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред
рдХреНрд▓реЙрдХ-рд╕реНрд╡реАрдк рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рднреА рдмрдлрд╝рд░реНрд╕ ("рдЕрдЧрд▓реЗ рд╢рд┐рдХрд╛рд░" рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдХреЗ рдмрд╛рдж рдЙрдирдХреА рдкрд╣реБрдВрдЪ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред рдмрд╛рд╣рд░ рднреАрдбрд╝ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓рд╛ рдмрдлрд░ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ:
- рдПрдХ рд╢реВрдиреНрдп рд╣рд┐рдЯ рдХрд╛рдЙрдВрдЯрд░ (рдЙрдкрдпреЛрдЧ рдЧрдгрдирд╛),
- рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ (рд╢реВрдиреНрдп рдкрд┐рди рдЧрдгрдирд╛)ред
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рд╕рднреА рдмрдлрд╝рд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдиреЙрди-рдЬреАрд░реЛ рд╣рд┐рдЯ рдХрд╛рдЙрдВрдЯрд░ рд╣реИ, рддреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рд░реНрдХрд▓ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдЕрдВрддрддрдГ рд╢реВрдиреНрдп рддрдХ рдирд╣реАрдВ рдЬрд╛рддрд╛ред "рдШреБрдорд╛рд╡рджрд╛рд░ рдордВрдбрд▓рд┐рдпреЛрдВ" рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд┐рдЯ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп 5. рддрдХ рд╕реАрдорд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдПрдХ рдмрдбрд╝реЗ рдмрдлрд░ рдХреИрд╢ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдУрд╡рд░рд╣реЗрдб рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред
рдмрдлрд░ рдкрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред
рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдХреЛ рдкрд┐рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рдЕрдиреНрдп рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдпрджрд┐ рдмрдлрд╝рд░ рдЧрдВрджрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛рдиреА рдЗрд╕рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкреГрд╖реНрда рдХреЛ рдХреЗрд╡рд▓ рддреНрдпрд╛рдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдкрд╣рд▓реЗ рдЗрд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреГрд╖реНрда рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "рд╡рд┐рджреЗрд╢реА" рдбреЗрдЯрд╛ рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рднрд╛рд╡ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕реБрдЪрд╛рд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдЕрдЧрд▓рд╛, рдбрд┐рд╕реНрдХ рд╕реЗ рдЪрдпрдирд┐рдд рдмрдлрд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреГрд╖реНрда рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдХрд╛рдЙрдВрдЯрд░ рдПрдХ рдкрд░ рд╕реЗрдЯ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреГрд╖реНрда рдХрд╛ рд▓рд┐рдВрдХ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдЕрдм "рдЕрдЧрд▓рд╛ рд╢рд┐рдХрд╛рд░" рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЕрдЧрд▓реЗ рдмрдлрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рд┐рд░реНрдл рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд╛рд╕ рд╣рд┐рдЯ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕реВрдЪрдХ рдкреВрд░реЗ рдмрдлрд░ рдХреИрд╢ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдкрдиреА рдЖрдБрдЦреЛрдВ рд╕реЗ
рдЬреИрд╕рд╛ рдХрд┐ PostgreSQL рдореЗрдВ рдкреНрд░рдерд╛рдЧрдд рд╣реИ, рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрдлрд░ рдХреИрд╢ рдХреЗ рдЕрдВрджрд░ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
=> CREATE EXTENSION pg_buffercache;
рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдбрд╛рд▓реЗрдВред
=> CREATE TABLE cacheme( id integer ) WITH (autovacuum_enabled = off); => INSERT INTO cacheme VALUES (1);
рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдХрдо рд╕реЗ рдХрдо, рдПрдХ рдкреГрд╖реНрда рдХреЛ рдЗрд╕рдореЗрдВ рдПрдХ рдПрдХрд▓ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрдлрд╝рд░реНрд╕ (рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЦреНрдпрд╛ relfilenode рджреНрд╡рд╛рд░рд╛) рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рдд рд╕рдВрдЦреНрдпрд╛ (relforknumber) рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рддреЗ рд╣реИрдВ:
=> SELECT bufferid, CASE relforknumber WHEN 0 THEN 'main' WHEN 1 THEN 'fsm' WHEN 2 THEN 'vm' END relfork, relblocknumber, isdirty, usagecount, pinning_backends FROM pg_buffercache WHERE relfilenode = pg_relation_filenode('cacheme'::regclass);
bufferid | relfork | relblocknumber | isdirty | usagecount | pinning_backends ----------+---------+----------------+---------+------------+------------------ 15735 | main | 0 | t | 1 | 0 (1 row)
рддреЛ рдпрд╣ рд╣реИ - рдмрдлрд░ рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рд╣реИред рдпрд╣ рдЧрдВрджрд╛ (isdirty) рд╣реИ, рд╣рд┐рдЯ рдХрд╛рдЙрдВрдЯрд░ рдПрдХ (рдпреВрд╕реЗрдЬрд╛рдЙрдВрдЯ) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐рд╕реА рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдкрд┐рдирд┐рдВрдЧ_рдмреИрдХ) рджреНрд╡рд╛рд░рд╛ рддрдп рдирд╣реАрдВ рд╣реИред
рдЕрдм рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХреНрд╡реЗрд░реА рджреЛрд╣рд░рд╛рдПрдВред рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреВрд╕рд░реЗ рд╕рддреНрд░ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░
\g
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд▓рдВрдмреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВред
| => INSERT INTO cacheme VALUES (2);
=> \g
bufferid | relfork | relblocknumber | isdirty | usagecount | pinning_backends ----------+---------+----------------+---------+------------+------------------ 15735 | main | 0 | t | 2 | 0 (1 row)
рдХреЛрдИ рдирдпрд╛ рдмрдлрд╝рд░ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ - рдЙрд╕реА рдкреГрд╖реНрда рдкрд░ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдлрд┐рдЯ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝ рдЧрдпрд╛ рд╣реИред
| => SELECT * FROM cacheme;
| id | ---- | 1 | 2 | (2 rows)
=> \g
bufferid | relfork | relblocknumber | isdirty | usagecount | pinning_backends ----------+---------+----------------+---------+------------+------------------ 15735 | main | 0 | t | 3 | 0 (1 row)
рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдХрд╛рдЙрдВрдЯрд░ рднреА рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
рдФрд░ рдЕрдЧрд░ рдЖрдк рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ?
| => VACUUM cacheme;
=> \g
bufferid | relfork | relblocknumber | isdirty | usagecount | pinning_backends ----------+---------+----------------+---------+------------+------------------ 15731 | fsm | 1 | t | 1 | 0 15732 | fsm | 0 | t | 1 | 0 15733 | fsm | 2 | t | 2 | 0 15734 | vm | 0 | t | 2 | 0 15735 | main | 0 | t | 3 | 0 (5 rows)
рд╕рдлрд╛рдИ рдиреЗ рдПрдХ рджреГрд╢реНрдпрддрд╛ рдорд╛рдирдЪрд┐рддреНрд░ (рдПрдХ рдкреГрд╖реНрда) рдФрд░ рдПрдХ рдореБрдлреНрдд рдЕрдВрддрд░рд┐рдХреНрд╖ рдорд╛рдирдЪрд┐рддреНрд░ (рддреАрди рдкреГрд╖реНрда - рдЗрд╕ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдиреНрдпреВрдирддрдо рдЖрдХрд╛рд░) рдмрдирд╛рдпрд╛ред
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдЗрддрдиреЗ рдкрд░ред
рдЖрдХрд╛рд░ рд╕реЗрдЯрд┐рдВрдЧ
рдХреИрд╢реЗ рдХрд╛ рдЖрдХрд╛рд░
рд╢реЗрдЕрд░_рдмрдлрд░реНрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 128 рдПрдордмреА рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИред рдпрд╣ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдХрд┐ рдпрд╣ PostgreSQL рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
=> SELECT setting, unit FROM pg_settings WHERE name = 'shared_buffers';
setting | unit ---------+------ 16384 | 8kB (1 row)
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкреБрдирд░рд╛рд░рдВрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХреИрд╢ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред
рдЙрдЪрд┐рдд рдореВрд▓реНрдп рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ?
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ "рд╣реЙрдЯ" рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕реАрдорд┐рдд рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╕рдордп рдкрд░ рд╕рдХреНрд░рд┐рдп рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЗрд╕ рд╕реЗрдЯ рдХреЛ рдмрдлрд░ рдХреИрд╢ ("рдПрдХ-рдмрд╛рд░" рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдерд╛рди) рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреИрд╢ рдХрд╛ рдЖрдХрд╛рд░ рдЫреЛрдЯрд╛ рд╣реИ, рддреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рд▓рдЧрд╛рддрд╛рд░ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдирд┐рдЪреЛрдбрд╝реЗрдВрдЧреЗ, рдЕрддреНрдпрдзрд┐рдХ рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ рдмрдирд╛рдПрдВрдЧреЗред рд▓реЗрдХрд┐рди рдирд╛рд╕рдордЭреА рд╕реЗ рдХреИрд╢ рдмрдврд╝рд╛рдирд╛ рднреА рдЧрд▓рдд рд╣реИред рдПрдХ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдУрд╡рд░рд╣реЗрдб рд▓рд╛рдЧрдд рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреА, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рд░реИрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдЗрд╖реНрдЯрддрдо рдмрдлрд░ рдХреИрд╢ рдЖрдХрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдЧрд╛: рдпрд╣ рдбреЗрдЯрд╛ рдкрд░, рдЖрд╡реЗрджрди рдкрд░, рд▓реЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдРрд╕рд╛ рдХреЛрдИ рдЬрд╛рджреБрдИ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реВрдЯ рдХрд░реЗрдЧрд╛ред
рдорд╛рдирдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреЛ рдкрд╣рд▓реЗ рд╕рдиреНрдирд┐рдХрдЯрди рдХреЗ рд░реВрдк рдореЗрдВ 1/4 рд░реИрдо рд▓реЗрдирд╛ рд╣реИ (рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ 10 рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЖрдХрд╛рд░ рдЫреЛрдЯрд╛ рдЪреБрдирдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЧрдИ рдереА)ред
рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдПрдХ рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ: рдХреИрд╢ рдЖрдХрд╛рд░ рдХреЛ рдмрдврд╝рд╛рдирд╛ рдпрд╛ рдШрдЯрд╛рдирд╛ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ред рдмреЗрд╢рдХ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рд╣реЛ рдФрд░ рдареЗрда рд▓реЛрдб рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ - рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдРрд╕реЗ рдкреНрд░рдпреЛрдЧ рд╕рдВрджрд┐рдЧреНрдз рдЦреБрд╢реА рдХреА рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВред
PgConf-2019 рдкрд░ рдирд┐рдХреЛрд▓реЗ рд╕рдореЛрдЦрд╛рд╡рд▓реЛрд╡ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рдЧреМрд░ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ: " рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬреНрдпреВрдХрд▓ рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрджреНрдпреЛрдЧрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг: рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдпреЛрдЧ "
рд▓реЗрдХрд┐рди рдЬреЛ рдХреБрдЫ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд╕рдорд╛рди pg_buffercache рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдзреЗ рд▓рд╛рдЗрд╡ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЪрдордХ рд╕рдХрддреА рд╣реИ - рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рд╕рд╣реА рдХреЛрдг рджреЗрдЦреЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдбрд┐рдЧреНрд░реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдлрд╝рд░реНрд╕ рдХреЗ рд╡рд┐рддрд░рдг рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
=> SELECT usagecount, count(*) FROM pg_buffercache GROUP BY usagecount ORDER BY usagecount;
usagecount | count ------------+------- 1 | 221 2 | 869 3 | 29 4 | 12 5 | 564 | 14689 (6 rows)
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЦрд╛рд▓реА рдХрд╛рдЙрдВрдЯрд░ рдореВрд▓реНрдп рдореБрдХреНрдд рдмрдлрд░ рд╣реИрдВред рдРрд╕реА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рд▓рд┐рдП рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрд┐рддрдиреА рдЯреЗрдмрд▓ рдХреИрд╢реНрдб рд╣реИрдВ рдФрд░ рдЗрди рдбреЗрдЯрд╛ рдХрд╛ рдХрд┐рддрдиреА рд╕рдХреНрд░рд┐рдпрддрд╛ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕ рдХреНрд╡реЗрд░реА рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рд╕реЗ рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рд╣реИ рдмрдлрд╝рд░реНрд╕ 3 рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд╕рд╛рде):
=> SELECT c.relname, count(*) blocks, round( 100.0 * 8192 * count(*) / pg_table_size(c.oid) ) "% of rel", round( 100.0 * 8192 * count(*) FILTER (WHERE b.usagecount > 3) / pg_table_size(c.oid) ) "% hot" FROM pg_buffercache b JOIN pg_class c ON pg_relation_filenode(c.oid) = b.relfilenode WHERE b.reldatabase IN ( 0, (SELECT oid FROM pg_database WHERE datname = current_database()) ) AND b.usagecount is not null GROUP BY c.relname, c.oid ORDER BY 2 DESC LIMIT 10;
relname | blocks | % of rel | % hot ---------------------------+--------+----------+------- vac | 833 | 100 | 0 pg_proc | 71 | 85 | 37 pg_depend | 57 | 98 | 19 pg_attribute | 55 | 100 | 64 vac_s | 32 | 4 | 0 pg_statistic | 27 | 71 | 63 autovac | 22 | 100 | 95 pg_depend_reference_index | 19 | 48 | 35 pg_rewrite | 17 | 23 | 8 pg_class | 16 | 100 | 100 (10 rows)
рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЦрд╛рд▓реА рдЯреЗрдмрд▓ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЬрдЧрд╣ рдШреЗрд░рддреА рд╣реИ (рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдерд╛), рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдиреЗ рднреА рдЗрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрднреА рддрдХ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдЪреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлреНрд░реА рдмрдлрд╝рд░реНрд╕ рдЕрднреА рддрдХ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓реЗ рд╣реИрдВред
рдЖрдк рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред рдХреЗрд╡рд▓ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
- рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рд╕рдВрдЦреНрдпрд╛ рдХреБрдЫ рд╕реАрдорд╛рдУрдВ рдХреЗ рднреАрддрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдЧреА;
- рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд▓рдЧрд╛рддрд╛рд░ (рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ) рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдереЛрдбрд╝реЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдХреИрд╢ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИред
рдФрд░ рдПрдХ рдмрд╛рддред рд╣рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ PostgreSQL рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдбрдмрд▓ рдХреИрд╢рд┐рдВрдЧ рд╣реИ: рдкреЗрдЬ DBMS рдмрдлрд░ рдХреИрд╢ рдФрд░ рдУрдПрд╕ рдХреИрд╢ рджреЛрдиреЛрдВ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдмрдлрд░ рдХреИрд╢ рдореЗрдВ "рдорд┐рд╕" рд╣рдореЗрд╢рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ I / O рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЬрдиреНрдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдУрдПрд╕ рдХреЛ рднреАрдбрд╝ рджреЗрдиреЗ рдХреА рд░рдгрдиреАрддрд┐ DBMS рд░рдгрдиреАрддрд┐ рд╕реЗ рдЕрд▓рдЧ рд╣реИ: рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдбреЗрдЯрд╛ рд░реАрдб рдХреЗ рдЕрд░реНрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред
рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╡рд┐рд╕реНрдерд╛рдкрди
рдмрд▓реНрдХ рд░реАрдбрд┐рдВрдЧ рдпрд╛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ, "рдПрдХ рдмрд╛рд░" рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдмрдлрд░ рдХреИрд╢ рд╕реЗ рдЙрдкрдпреЛрдЧреА рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╡рд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЦрддрд░рд╛ рд╣реИред
рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рддрдерд╛рдХрдерд┐рдд
рдмрдлрд░ рд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдРрд╕реЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдХреИрд╢ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХреНрд╕рдЯреНрд░реВрдЬрд╝рди рдХреЗрд╡рд▓ рд░рд┐рдВрдЧ рдХреЗ рднреАрддрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрдлрд░ рдХреИрд╢ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдХреНрд░рдорд┐рдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рдмрдлрд░ рдХреИрд╢ рдХреЗ рдПрдХ рдЪреМрдерд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИ) 32 рдкреГрд╖реНрда рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рднреА рдЗрд╕ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкрд╣рд▓реЗ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рдмрдлрд░ рд░рд┐рдВрдЧ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИред рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд╣ рдЯреЗрдмрд▓ рдХреЗ "рдорд┐рд╕реНрдб" рд╢реБрд░реБрдЖрдд рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред
рдЖрдЗрдП рдЗрд╕реЗ рджреЗрдЦреЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ рддрд╛рдХрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдкреВрд░реЗ рдкреГрд╖реНрда рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗ - рдпрд╣ рдЧрд┐рдирддреА рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдлрд╝рд░ рдХреИрд╢ рдЖрдХрд╛рд░ 128 MB = 16384 рдкреГрд╖реНрдареЛрдВ рдХреА 8 KB рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 4096 рд╕реЗ рдЕрдзрд┐рдХ рдкреГрд╖реНрда-рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
=> CREATE TABLE big( id integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY, s char(1000) ) WITH (fillfactor=10); => INSERT INTO big(s) SELECT 'FOO' FROM generate_series(1,4096+1);
рдЖрдЗрдП рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВред
=> ANALYZE big; => SELECT relpages FROM pg_class WHERE oid = 'big'::regclass;
relpages ---------- 4097 (1 row)
рдЕрдм рд╣рдореЗрдВ рдЙрд╕ рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛ рдХреЗ рдХреИрд╢ рдХреЛ рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрдврд╝рд╛ рд╣реИред
student$ sudo pg_ctlcluster 11 main restart
рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж, рдкреВрд░реА рддрд╛рд▓рд┐рдХрд╛ рдкрдврд╝реЗрдВ:
=> EXPLAIN (ANALYZE, COSTS OFF) SELECT count(*) FROM big;
QUERY PLAN --------------------------------------------------------------------- Aggregate (actual time=14.472..14.473 rows=1 loops=1) -> Seq Scan on big (actual time=0.031..13.022 rows=4097 loops=1) Planning Time: 0.528 ms Execution Time: 14.590 ms (4 rows)
рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рдХреЗрд╡рд▓ 32 рдмрдлрд╝рд░реНрд╕ рдХреЛ рд╕рд╛рд░рдгреАрдмрджреНрдз рдкреГрд╖реНрда рдкрд░ рдХрдмреНрдЬрд╛ рд╣реИ:
=> SELECT count(*) FROM pg_buffercache WHERE relfilenode = pg_relation_filenode('big'::regclass);
count ------- 32 (1 row)
рдпрджрд┐ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдХреИрдирд┐рдВрдЧ рдирд┐рд╖рд┐рджреНрдз рд╣реИ, рддреЛ рддрд╛рд▓рд┐рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝реА рдЬрд╛рдПрдЧреА:
=> SET enable_seqscan = off; => EXPLAIN (ANALYZE, COSTS OFF) SELECT count(*) FROM big;
QUERY PLAN ------------------------------------------------------------------------------------------- Aggregate (actual time=50.300..50.301 rows=1 loops=1) -> Index Only Scan using big_pkey on big (actual time=0.098..48.547 rows=4097 loops=1) Heap Fetches: 4097 Planning Time: 0.067 ms Execution Time: 50.340 ms (5 rows)
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдмрдлрд░ рд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреВрд░реА рддрд╛рд▓рд┐рдХрд╛ рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ (рдФрд░ рд▓рдЧрднрдЧ рд╕рдВрдкреВрд░реНрдг рд╕реВрдЪрдХрд╛рдВрдХ рднреА):
=> SELECT count(*) FROM pg_buffercache WHERE relfilenode = pg_relation_filenode('big'::regclass);
count ------- 4097 (1 row)
рдЗрд╕реА рддрд░рд╣, рдмрдлрд░ рд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдлрд╛рдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (32 рдкреЗрдЬ рднреА) рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдереЛрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП COP IN IN рдФрд░ CREATE TABLE AS SELECT (рдЖрдорддреМрд░ рдкрд░ 2048 рдкреЗрдЬ, рд▓реЗрдХрд┐рди рдХреБрд▓ рдмрдлрд░ рдХреИрд╢ рдХрд╛ 1/8 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ)ред
рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдмрд▓
рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рдХрд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдмрд▓ рд╣реИред рдЪреВрдВрдХрд┐ рдЕрд╕реНрдерд╛рдпреА рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рд╛рдЭрд╛ рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрд╕реНрдерд╛рдпреА рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рддреНрд░ рдХреЗ рднреАрддрд░ рдореМрдЬреВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЕрд╕реНрдерд╛рдпреА рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕реНрдерд╛рдиреАрдп рдореЗрдореЛрд░реА рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИред рдЪреВрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рддрд╛рд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реАрдореЗрдкреНрдЯрд┐рд╡ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдмрдлрд░ рдХреИрд╢ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд╕рддреНрд░реЛрдВ рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕рддреНрд░ рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХреА рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛
temp_buffers рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред
рдХреИрд╢ рдХреЛ рдЧрд░реНрдо рдХрд░рдирд╛
рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреИрд╢ рдХреЗ "рд╣реАрдЯ рдЕрдк" рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рд╕рдордп рдЧреБрдЬрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдЬрдорд╛ рдХрд░рддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдХреИрд╢ рдореЗрдВ рдХреБрдЫ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рддреБрд░рдВрдд рдкрдврд╝рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
=> CREATE EXTENSION pg_prewarm;
рдкрд╣рд▓реЗ, рдХреЛрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗрд╡рд▓ рдмрдлрд╝рд░ рдХреИрд╢ (рдпрд╛ рдХреЗрд╡рд▓ OS рдХреИрд╢реЗ рдореЗрдВ) рдореЗрдВ рдХреБрдЫ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдкрдврд╝ рд╕рдХрддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди PostgreSQL 11 рдореЗрдВ, рдпрд╣ рд╕рд░реНрд╡рд░ рдХреЛ рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд░реНрддрдорд╛рди рдХреИрд╢ рд╕реНрдерд┐рддрд┐ рдХреЛ рдбрд┐рд╕реНрдХ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рдЗрд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ
рд╕рд╛рдЭрд╛_рдкреНрд░рднрд╛рд░_ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
=> ALTER SYSTEM SET shared_preload_libraries = 'pg_prewarm';
student$ sudo pg_ctlcluster 11 main restart
рдкреБрдирд░рд╛рд░рдВрдн рдХреНрд╖реЗрддреНрд░, рдЕрдЧрд░
pg_prewarm.autoprewarm рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рддреЛ рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рдорд╛рд╕реНрдЯрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧреА, рдЬреЛ рдПрдХ рдмрд╛рд░
pg_prewarm.autoprewarm_interval рдореЗрдВ рдХреИрд╢ рдореЗрдВ рдкреГрд╖реНрдареЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдбрд┐рд╕реНрдХ рдореЗрдВ рдбрдВрдк рдХрд░ рджреЗрдЧрд╛ (
рдЕрдзрд┐рдХрддрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рди рднреВрд▓реЗрдВ)ред
=> SELECT name, setting, unit FROM pg_settings WHERE name LIKE 'pg_prewarm%';
name | setting | unit ---------------------------------+---------+------ pg_prewarm.autoprewarm | on | pg_prewarm.autoprewarm_interval | 300 | s (2 rows)
postgres$ ps -o pid,command --ppid `head -n 1 /var/lib/postgresql/11/main/postmaster.pid` | grep prewarm
10436 postgres: 11/main: autoprewarm master
рдЕрдм рдХреИрд╢ рдореЗрдВ рдХреЛрдИ рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛ рдирд╣реАрдВ рд╣реИ:
=> SELECT count(*) FROM pg_buffercache WHERE relfilenode = pg_relation_filenode('big'::regclass);
count ------- 0 (1 row)
рдпрджрд┐ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░рд┐рдпрд╛рдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рддреЛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:
=> SELECT pg_prewarm('big');
pg_prewarm ------------ 4097 (1 row)
=> SELECT count(*) FROM pg_buffercache WHERE relfilenode = pg_relation_filenode('big'::regclass);
count ------- 4097 (1 row)
рдкреГрд╖реНрдареЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ autoprewarm.blocks рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбрдВрдк рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдСрдЯреЛрдкреНрд░реЗрд╡рд░реНрдо рдорд╛рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рд▓реА рдмрд╛рд░ рдирд╣реАрдВ рдЪрд▓рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ:
=> SELECT autoprewarm_dump_now();
autoprewarm_dump_now ---------------------- 4340 (1 row)
рддреНрдпрд╛рдЧ рдХрд┐рдП рдЧрдП рдкреГрд╖реНрдареЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 4097 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ - рдЗрд╕рдореЗрдВ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рдкрдврд╝реЗ рдЧрдП рд╕рд┐рд╕реНрдЯрдо рдХреИрдЯрд▓реЙрдЧ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдкреГрд╖реНрда рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдБ рдлрд╛рдЗрд▓ рд╣реИ:
postgres$ ls -l /var/lib/postgresql/11/main/autoprewarm.blocks
-rw------- 1 postgres postgres 102078 29 15:51 /var/lib/postgresql/11/main/autoprewarm.blocks
рдЕрдм рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░реЗрдВред
student$ sudo pg_ctlcluster 11 main restart
рдФрд░ рд▓реЙрдиреНрдЪ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд╣рдорд╛рд░реА рддрд╛рд▓рд┐рдХрд╛ рдлрд┐рд░ рд╕реЗ рдХреИрд╢ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред
=> SELECT count(*) FROM pg_buffercache WHERE relfilenode = pg_relation_filenode('big'::regclass);
count ------- 4097 (1 row)
рдпрд╣ рдПрдХ рд╣реА рдСрдЯреЛрдкреНрд░реЗрд╡рд░реНрдо рдорд╛рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдкреГрд╖реНрдареЛрдВ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕реЙрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ (рддрд╛рдХрд┐ рдбрд┐рд╕реНрдХ рд╕реЗ рдкрдврд╝рдирд╛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рдВрдЧрдд рд╣реЛ), рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рдСрдЯреЛрдкреНрд░реЗрд╡рд░реНрдо рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдП ред