рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдбреАрдмреАрдПрдордПрд╕: рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрдХрд░рдг рдЪреБрдирддреЗ рд╕рдордп рдЖрдкрдХреЛ рдХреНрдпрд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП

рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдбреАрдмреАрдПрдордПрд╕: рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрдХрд░рдг рдЪреБрдирддреЗ рд╕рдордп рдЖрдкрдХреЛ рдХреНрдпрд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП

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

рдпрд╣ рдЖрд▓реЗрдЦ рдПрдХ рднрд╛рд╖рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ @рдбреЗрдЯрд╛рдмреЗрд╕рдореАрдЯрдЕрдк, рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЙрд▓реНрдпреВрд╢рдВрд╕. рдЕрдЧрд░ рдЖрдк рдкрдврд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рддреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:


рд▓реЗрдЦ рдХреЗ рддреАрди рднрд╛рдЧ рд╣реЛрдВрдЧреЗ:

  • рдХрдиреЗрдХреНрд╢рди рдХреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдВ.
  • рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдСрдбрд┐рдЯ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╛рдЗрдб рдкрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрд╕рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕реЗ рдХреИрд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛рдПред
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реА рдбреЗрдЯрд╛ рдХреЛ рдХреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рддрдХрдиреАрдХреЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдбреАрдмреАрдПрдордПрд╕: рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрдХрд░рдг рдЪреБрдирддреЗ рд╕рдордп рдЖрдкрдХреЛ рдХреНрдпрд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП
DBMS рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рддреАрди рдШрдЯрдХ: рдХрдиреЗрдХреНрд╢рди рд╕реБрд░рдХреНрд╖рд╛, рдЧрддрд┐рд╡рд┐рдзрд┐ рдСрдбрд┐рдЯрд┐рдВрдЧ рдФрд░ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛

рдЕрдкрдиреЗ рдХрдиреЗрдХреНрд╢рди рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛

рдЖрдк рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдпрд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдпрд╛рдиреА рд╡рд╣ рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддрд╛ рд╣реИред

рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

  • рдХреНрдпрд╛ рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ DBMS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ?
  • рдХреНрдпрд╛ рдбреАрдмреАрдПрдордПрд╕ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗрд╡рд▓ рдЙрд╕ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдХреНрдпрд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рддрдХ рд╕реАрдзреЗ рдкрд╣реБрдВрдЪ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ;
  • рдХреНрдпрд╛ рдбреАрдмреАрдПрдордПрд╕ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд░рдХреНрд╖рд┐рдд рдЦрдВрдб рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреМрди рдЗрд╕рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреИрд╕реЗ;
  • рдХреНрдпрд╛ рдкреВрд▓рд┐рдВрдЧ/рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреМрди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдмрджрд▓ рд╕рдХрддреА рд╣реИред

рдЕрдм рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреНрд▓рд╛рд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рдд, рдХрдо рд╕реЗ рдХрдо, рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдмрдврд╝рд╛рдПрдЧреА, рдФрд░ рдЕрдзрд┐рдХрддрдо, рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
  2. рдкрд╛рд╕рд╡рд░реНрдб рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ. рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреАрдмреАрдПрдордПрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдРрд╕реЗ рдХрдИ DBMS рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

    рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░реЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ, рдЖрдк MS SQL рднреЗрджреНрдпрддрд╛ рдЖрдХрд▓рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ

  3. рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕рддреНрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рд╕рдореГрджреНрдз рдХрд░реЗрдВред рдпрджрд┐ рд╕рддреНрд░ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╣реИ, рдЖрдк рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ рдХреМрди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░, рдХреМрди рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдСрдбрд┐рдЯ рдореЗрдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ.
  4. рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ DBMS рдФрд░ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдиреЗрдЯрд╡рд░реНрдХ рдкреГрдердХреНрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рддреЛ SSL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ; рдпрд╣ рдПрдХ рдЕрд▓рдЧ VLAN рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЙрдкрднреЛрдХреНрддрд╛ рдФрд░ рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдЪреИрдирд▓ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрдХрд░рдг рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдореЗрдВ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдЗрд╕рдХрд╛ DBMS рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛?

рдЖрдЗрдП PostgreSQL рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдХрд┐ рдПрд╕рдПрд╕рдПрд▓ рд╕реАрдкреАрдпреВ рд▓реЛрдб рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕рдордп рдмрдврд╝рд╛рддрд╛ рд╣реИ рдФрд░ рдЯреАрдкреАрдПрд╕ рдШрдЯрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░реЗрдЧрд╛ред

рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП pgbench рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ PostgreSQL рд▓реЛрдб рдХрд░рдирд╛ рдПрдХ рд╕рд░рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИред рдпрд╣ рд╕рдВрднрд╡рддрдГ рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рддреНрд░реЛрдВ рдореЗрдВ рдЖрджреЗрд╢реЛрдВ рдХреЗ рдПрдХрд▓ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдФрд╕рдд рд▓реЗрдирджреЗрди рджрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред

рдПрд╕рдПрд╕рдПрд▓ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг 1 - рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require 
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"

vs

pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"

рдПрд╕рдПрд╕рдПрд▓ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг 2 - рд╕рднреА рд▓реЗрди-рджреЗрди рдПрдХ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"

vs

pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"

рдЕрдиреНрдп рд╕реЗрдЯрд┐рдВрдЧ:

scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 5000
number of transactions actually processed: 50000/50000

рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо:

 
рдХреЛрдИ рдПрд╕рдПрд╕рдПрд▓ рдирд╣реАрдВ
рдПрд╕рдПрд╕рдПрд▓

рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╡рд┐рд▓рдВрдмрддрд╛ рдФрд╕рдд
171.915 рдПрдордПрд╕
187.695 рдПрдордПрд╕

рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕рд╣рд┐рдд рдЯреАрдкреАрдПрд╕
58.168112
53.278062

рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЯреАрдкреАрдПрд╕
64.084546
58.725846

рд╕реА рдкреА рдпреВ
24% рддрдХ
28% рддрдХ

рд╕рднреА рд▓реЗрди-рджреЗрди рдПрдХ рд╣реА рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдХрд┐рдпреЗ рдЬрд╛рддреЗ рд╣реИрдВ

рд╡рд┐рд▓рдВрдмрддрд╛ рдФрд╕рдд
6.722 рдПрдордПрд╕
6.342 рдПрдордПрд╕

рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕рд╣рд┐рдд рдЯреАрдкреАрдПрд╕
1587.657278
1576.792883

рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЯреАрдкреАрдПрд╕
1588.380574
1577.694766

рд╕реА рдкреА рдпреВ
17% рддрдХ
21% рддрдХ

рд╣рд▓реНрдХреЗ рднрд╛рд░ рдкрд░, рдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдорд╛рдк рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИ, рддреЛ рд╕реНрдерд┐рддрд┐ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рд╣рдо рдкреНрд░рддрд┐ рд▓реЗрдирджреЗрди рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рджреБрд░реНрд▓рдн рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдХрдиреЗрдХреНрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди/рдбрд┐рд╕реНрдХрдиреЗрдХреНрд╢рди рд╣реИрдВ, рддреЛ рдкреНрд░рднрд╛рд╡ рдереЛрдбрд╝рд╛ рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛рдиреА, рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрдореА рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдВрддрд░ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдПрдХ рдордЬрдмреВрдд рдЕрдВрддрд░ рд╣реИ: рдЖрдк рдПрдХ рд╣реА рд╕рддреНрд░ рдореЗрдВ рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рддреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдкрд░ рд╕рдВрд╕рд╛рдзрди рдЦрд░реНрдЪ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

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

рдирд┐рд╖реНрдХрд░реНрд╖: рдХрдИ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореЗрдВ рдЫреЛрдЯреА-рдЫреЛрдЯреА рдмрд╛рд░реАрдХрд┐рдпрд╛рдБ рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдпрд╣ рдмреБрд░рд╛ рд╣реИ рдЬрдм рдпрд╣ рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд╛рд░реНрд░рд╡рд╛рдИ рд▓реЗрдЦрд╛рдкрд░реАрдХреНрд╖рд╛

рдСрдбрд┐рдЯ рд╕рд┐рд░реНрдл DBMS рд╣реА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛. рдСрдбрд┐рдЯ рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдпрд╣ рдпрд╛ рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдпрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ DBMS рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрджреНрдпрдо рд╕реНрддрд░ рдХреЗ DBMS рдореЗрдВ рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдореЗрдВ - рд╣рдореЗрд╢рд╛ рдирд╣реАрдВред рдпрд╣рд╛рдБ PostgreSQL рдореЗрдВ рдХреНрдпрд╛ рд╣реИ:

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЙрдЧ - рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд▓реЙрдЧрд┐рдВрдЧ;
  • рдПрдХреНрд╕рдЯреЗрдВрд╢рди: pgaudit - рдпрджрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЙрдЧрд┐рдВрдЧ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЕрд▓рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреА рд╣реИрдВред

рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛:

"рдмреЗрд╕рд┐рдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ log_statement = all рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рдирдХ рд▓реЙрдЧрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╡рд░рдг рдХрд╛ рд╕реНрддрд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдХрд┐рдП рдЧрдП рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рд╣реЛрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред

рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрдпрд╛рдиреЛрдВ рдХреЛ рдвреВрдВрдврдирд╛ рднреА рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдСрдбрд┐рдЯрд░ рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐рдХрд░ рд╣реЛрдВред

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдбрд┐рдЯрд░ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд░рдЦрд░рдЦрд╛рд╡ рд╡рд┐рдВрдбреЛ рдХреЗ рднреАрддрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред

рдмреБрдирд┐рдпрд╛рджреА рдСрдбрд┐рдЯрд┐рдВрдЧ рдФрд░ рдЧреНрд░реЗрдк рдХреЗ рд╕рд╛рде рдпрд╣ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдРрд╕рд╛ рдХреБрдЫ (рдЬрд╛рдирдмреВрдЭрдХрд░ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛) рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдП:

рдХрд░реЛ$$
рд╢реБрд░реВ
'рдЯреЗрдмрд▓ рдЖрдпрд╛рдд рдмрдирд╛рдПрдВ' рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ || 'ant_table (id int)';
END$$;

рдорд╛рдирдХ рд▓реЙрдЧрд┐рдВрдЧ рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЧреА:

рд▓реЙрдЧ: рдХрдерди: $$ рдХрд░реЗрдВ
рд╢реБрд░реВ
'рдЯреЗрдмрд▓ рдЖрдпрд╛рдд рдмрдирд╛рдПрдВ' рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ || 'ant_table (id int)';
END$$;

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд░реБрдЪрд┐ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд╣рд╛рдВ рддрд╛рд▓рд┐рдХрд╛рдПрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред

рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рд╕реЗ рдЦреЛрдЬрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

рдпрд╣реАрдВ рдкрд░ рдкреАрдЬреАрдСрдбрд┐рдЯ рдХрд╛рдо рдЖрддрд╛ рд╣реИред

рдЙрд╕реА рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд▓реЙрдЧ рдореЗрдВ рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:

рдСрдбрд┐рдЯ: рд╕рддреНрд░,33,1,рдлрд╝рдВрдХреНрд╢рди,рдХрд░реЛ,,,"рдХрд░реЛ $$
рд╢реБрд░реВ
'рдЯреЗрдмрд▓ рдЖрдпрд╛рдд рдмрдирд╛рдПрдВ' рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ || 'ant_table (id int)';
END$$;"
рдСрдбрд┐рдЯ: рд╕рддреНрд░,33,2,рдбреАрдбреАрдПрд▓, рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ, рддрд╛рд▓рд┐рдХрд╛, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ.рдорд╣рддреНрд╡рдкреВрд░реНрдг_рдЯреЗрдмрд▓, рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг_рдЯреЗрдмрд▓ (рдЖрдИрдбреА рдЖрдИрдПрдирдЯреА)

рди рдХреЗрд╡рд▓ рдбреАрдУ рдмреНрд▓реЙрдХ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдкреНрд░рдХрд╛рд░, рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ рдФрд░ рдкреВрд░реНрдг рдирд╛рдо рдХреЗ рд╕рд╛рде рдХреНрд░рд┐рдПрдЯ рдЯреЗрдмрд▓ рдХрд╛ рдкреВрд░рд╛ рдЯреЗрдХреНрд╕реНрдЯ рднреА рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЦреЛрдЬ рдЖрд╕рд╛рди рд╣реЛ рдЧрдИ рд╣реИред

SELECT рдФрд░ DML рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд▓реЙрдЧ рдХрд░рддреЗ рд╕рдордп, pgAudit рдХреЛ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдмрдВрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЫреВрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрдердиреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ(*). "

рдЗрд╕рдХрд╛ DBMS рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛?

рдЖрдЗрдП рдкреВрд░реНрдг рдСрдбрд┐рдЯрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ PostgreSQL рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рдЖрдЗрдП рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЙрдЧрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред

рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдЕрдзрд┐рдХрддрдо рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧ5 рдореЛрдб рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реИред

postgresql.conf

рд▓реЙрдЧ_рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди = 'stderr'
рд▓реЙрдЧрд┐рдВрдЧ_рдХрд▓реЗрдХреНрдЯрд░ = рдЪрд╛рд▓реВ
log_truncat_on_rotation = рдЪрд╛рд▓реВ
рд▓реЙрдЧ_рд░реЛрдЯреЗрд╢рди_рдЖрдпреБ = 1 рджрд┐рди
рд▓реЙрдЧ_рд░реЛрдЯреЗрд╢рди_рдЖрдХрд╛рд░ = 10рдПрдордмреА
log_min_messages = рдбреАрдмрдЧ5
log_min_error_statement = рдбреАрдмрдЧ5
log_min_duration_statement = 0
рдбрд┐рдмрдЧ_рдкреНрд░рд┐рдВрдЯ_рдкрд╛рд░реНрд╕ = рдЪрд╛рд▓реВ
рдбрд┐рдмрдЧ_рдкреНрд░рд┐рдВрдЯ_рд░реАрд░рд╛рдЗрдЯ = рдЪрд╛рд▓реВ
рдбрд┐рдмрдЧ_рдкреНрд░рд┐рдВрдЯ_рдкреНрд▓рд╛рди = рдЪрд╛рд▓реВ
рдбрд┐рдмрдЧ_рдкреНрд░рд┐рдЯреА_рдкреНрд░рд┐рдВрдЯ = рдЪрд╛рд▓реВ
рд▓реЙрдЧ_рдЪреЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ = рдЪрд╛рд▓реВ
рд▓реЙрдЧ_рдХрдиреЗрдХреНрд╢рди = рдЪрд╛рд▓реВ
рд▓реЙрдЧ_рдбрд┐рд╕реНрдХрдиреЗрдХреНрд╢рди = рдЪрд╛рд▓реВ
рд▓реЙрдЧ_рдЕрд╡рдзрд┐ = рдЪрд╛рд▓реВ
рд▓реЙрдЧ_рд╣реЛрд╕реНрдЯрдирд╛рдо = рдЪрд╛рд▓реВ
рд▓реЙрдЧ_рд▓реЙрдХ_рд╡реЗрдЯреНрд╕ = рдЪрд╛рд▓реВ
log_replication_commands = рдЪрд╛рд▓реВ
log_temp_files = 0
log_timezone = 'рдпреВрд░реЛрдк/рдореЙрд╕реНрдХреЛ'

1 рд╕реАрдкреАрдпреВ, 2,8 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬ, 2 рдЬреАрдмреА рд░реИрдо, 40 рдЬреАрдмреА рдПрдЪрдбреАрдбреА рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╛рд▓реЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдбреАрдмреАрдПрдордПрд╕ рдкрд░, рд╣рдо рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреАрди рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ:

$ pgbench -p 3389 -U postgres -i -s 150 benchmark
$ pgbench -p 3389 -U postgres -c 50 -j 2 -P 60 -T 600 benchmark
$ pgbench -p 3389 -U postgres -c 150 -j 2 -P 60 -T 600 benchmark

рдкрд░реАрдХреНрд╖рд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо:

рдХреЛрдИ рд▓реЙрдЧрд┐рдВрдЧ рдирд╣реАрдВ
рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде

рдХреБрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рднрд░рдиреЗ рдХрд╛ рд╕рдордп
43,74 рд╕реЗрдХрдВрдб
53,23 рд╕реЗрдХрдВрдб

рдбрдХреИрддреА
24% рддрдХ
40% рддрдХ

рд╕реА рдкреА рдпреВ
72% рддрдХ
91% рддрдХ

рдкрд░реАрдХреНрд╖рдг 1 (50 рдХрдиреЗрдХреНрд╢рди)

10 рдорд┐рдирдЯ рдореЗрдВ рд▓реЗрдирджреЗрди рдХреА рд╕рдВрдЦреНрдпрд╛
74169
32445

рд▓реЗрдирджреЗрди/рд╕реЗрдХрдВрдб
123
54

рдФрд╕рдд рд╡рд┐рд▓рдВрдмрддрд╛
405 рдПрдордПрд╕
925 рдПрдордПрд╕

рдкрд░реАрдХреНрд╖рдг 2 (150 рдХрдиреЗрдХреНрд╢рди рдФрд░ 100 рд╕рдВрднрд╡)

10 рдорд┐рдирдЯ рдореЗрдВ рд▓реЗрдирджреЗрди рдХреА рд╕рдВрдЦреНрдпрд╛
81727
31429

рд▓реЗрдирджреЗрди/рд╕реЗрдХрдВрдб
136
52

рдФрд╕рдд рд╡рд┐рд▓рдВрдмрддрд╛
550 рдПрдордПрд╕
1432 рдПрдордПрд╕

рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

рдбреАрдмреА рдЖрдХрд╛рд░
2251 рдПрдордмреА
2262 рдПрдордмреА

рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЙрдЧ рдЖрдХрд╛рд░
0 MB
4587 MB

рдирд┐рдЪрд▓реА рдкрдВрдХреНрддрд┐: рдкреВрд░реНрдг рдСрдбрд┐рдЯ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдСрдбрд┐рдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдореМрдЬреВрдж рдбреЗрдЯрд╛ рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдЙрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд▓реЙрдЧрд┐рдВрдЧ рдХреА рдорд╛рддреНрд░рд╛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдПрдХ рдЖрдо рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдЖрдЗрдП рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ:

  • рдЧрддрд┐ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рдмрджрд▓рддреА: рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ - 43,74 рд╕реЗрдХрдВрдб, рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде - 53,23 рд╕реЗрдХрдВрдбред
  • рд░реИрдо рдФрд░ рд╕реАрдкреАрдпреВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдСрдбрд┐рдЯ рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝реЗрдЧреА, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдкреНрд░рджрд░реНрд╢рди рдереЛрдбрд╝рд╛ рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдСрдбрд┐рдЯ рд╡рд╛рд▓реЗ рдирд┐рдЧрдореЛрдВ рдореЗрдВ рдпрд╣ рдФрд░ рднреА рдХрдард┐рди рд╣реИ:

  • рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рд╣реИ;
  • рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рдХреЗрд╡рд▓ SIEM рдореЗрдВ syslog рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддреА рд╣реИ, рдмрд▓реНрдХрд┐ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рднреА рд╣реЛрддреА рд╣реИ: рдпрджрд┐ syslog рдореЗрдВ рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдХрд░реАрдм рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ;
  • рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ рд╢реЗрд▓реНрдл рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ I/O рдбрд┐рд╕реНрдХ рдкрд░ рдмрд░реНрдмрд╛рджреА рди рд╣реЛ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЧрд╣ рд▓рдЧрддреА рд╣реИ;
  • рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рд╣рд░ рдЬрдЧрд╣ GOST рдорд╛рдирдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд░рд╛рдЬреНрдп рдХреА рдкрд╣рдЪрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдирд╛

рдЖрдЗрдП рдЙрди рддрдХрдиреАрдХреЛрдВ рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдЙрд╕реЗ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдбреАрдмреАрдПрдордПрд╕ рдФрд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдк рдЖрдо рддреМрд░ рдкрд░ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  1. рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯреАрдХрд░рдг (рд░реИрдкрд┐рдВрдЧ) - рдЕрд░реНрдерд╛рдд, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдХрд░рдг рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ рдЬреЛ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб рдХреЛ рдЕрдкрдардиреАрдп рдмрдирд╛рддреЗ рд╣реИрдВред рд╕рдЪ рд╣реИ, рддреЛ рдЗрд╕реЗ рди рддреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рди рд╣реА рджреЛрдмрд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХрднреА-рдХрднреА рдХрдо рд╕реЗ рдХрдо рдбреАрдмреАрдПрдордПрд╕ рдкрдХреНрд╖ рдкрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рддрд┐рдмрдВрдз рдпрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рддрд░реНрдХ рдХрд╛ рддрд░реНрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реНрддрд░ рдкрд░ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  2. рдкрдВрдХреНрддрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдХреА рджреГрд╢реНрдпрддрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ (рдЖрд░рдПрд▓рдПрд╕) рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрд╕рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдПрдХ рдЕрд▓рдЧ рд╕рдВрд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИ, рдпрд╛рдиреА рдкрдВрдХреНрддрд┐ рд╕реНрддрд░ рдкрд░ рдХрд┐рд╕реА рдХреЛ рдХреБрдЫ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  3. рдкреНрд░рджрд░реНрд╢рд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ (рдорд╛рд╕реНрдХрд┐рдВрдЧ) рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдПрдХ рдХреЙрд▓рдо рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рддреЛ рдбреЗрдЯрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ рдпрд╛ рдХреЗрд╡рд▓ рддрд╛рд░рд╛рдВрдХрди рджреЗрдЦрддреЗ рд╣реИрдВ, рдпрд╛рдиреА, рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧреАред рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрдирдХреЗ рдкрд╣реБрдВрдЪ рд╕реНрддрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  4. рд╕реБрд░рдХреНрд╖рд╛ рдбреАрдмреАрдП/рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреАрдмреАрдП/рдбреАрдмреАрдП рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓, рдмрд▓реНрдХрд┐, рдбреАрдмреАрдПрдордПрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдпрд╛рдиреА, рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдУрдкрди рд╕реЛрд░реНрд╕ рдореЗрдВ рдРрд╕реА рдХреБрдЫ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ DBMS рдореЗрдВ рдЗрдирдХреА рдмрд╣реБрддрд╛рдпрдд рд╣реИред рдЗрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдпрдВ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рд░рдЦрддреЗ рд╣реИрдВред
  5. рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдирд╛ред рдЖрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрдзрд┐рдХрд╛рд░ рдФрд░ рдкрд╣реБрдВрдЪ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛред
  6. рдЕрдирд┐рд╡рд╛рд░реНрдп рдкрд╣реБрдВрдЪ рдФрд░ рдореЗрдореЛрд░реА рдХреНрд▓реАрдпрд░рд┐рдВрдЧ - рдЗрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  7. рдбреАрдмреАрдПрдордПрд╕ рд╕реЗ рд╕реАрдзреЗ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдХреБрдВрдЬреА рдкреНрд░рдмрдВрдзрди рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╣реИред
  8. рдбреЗрдЯрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рдиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд▓рдорд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдПрдХ рдРрд╕реЗ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдПрдХрд▓ рдХреЙрд▓рдо рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ DBMS рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?

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

рдЖрдЗрдП pgcrypto рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ. рдЖрдЗрдП рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ рдФрд░ рдирд┐рдпрдорд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВред рдиреАрдЪреЗ рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рджрд┐рдП рдЧрдП рд╣реИрдВ, рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧреА рдХрдорд╛рдВрдб рд╣реИ - рдбреАрдмреАрдПрдордПрд╕ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рд╕рд╛рде рд╣реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рдирд╛:

CREATE EXTENSION pgcrypto;
CREATE TABLE t1 (id integer, text1 text, text2 text);
CREATE TABLE t2 (id integer, text1 bytea, text2 bytea);
INSERT INTO t1 (id, text1, text2)
VALUES (generate_series(1,10000000), generate_series(1,10000000)::text, generate_series(1,10000000)::text);
INSERT INTO t2 (id, text1, text2) VALUES (
generate_series(1,10000000),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'));

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдЗрдП рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдирдореВрдирд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рджреЗрдЦреЗрдВред

рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд┐рдирд╛ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЪрдпрди рдХрд░рдирд╛:

psql -c "timing" -c "select * from t1 limit 1000;" "host=192.168.220.129 dbname=taskdb
user=postgres sslmode=disable" > 1.txt

рд╕реНрдЯреЙрдкрд╡реЙрдЪ рдЪрд╛рд▓реВ рд╣реИ.

  рдЖрдИрдбреА | рдкрд╛рда 1 | рдЯреЗрдХреНрд╕реНрдЯ 2
тАФтАФ+тАФтАФ-+тАФтАФ-
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
...
997 | 997 | 997
998 | 998 | 998
999 | 999 | 999
1000 | 1000 | 1000
(1000 рдкрдВрдХреНрддрд┐рдпрд╛рдБ)

рд╕рдордп: 1,386 рдорд┐.рд╕реЗ

рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЪрдпрди:

psql -c "timing" -c "select id, decrypt(text1, 'key'::bytea, 'bf'),
decrypt(text2, 'key'::bytea, 'bf') from t2 limit 1000;"
"host=192.168.220.129 dbname=taskdb user=postgres sslmode=disable" > 2.txt

рд╕реНрдЯреЙрдкрд╡реЙрдЪ рдЪрд╛рд▓реВ рд╣реИ.

  рдЖрдИрдбреА | рдбрд┐рдХреНрд░рд┐рдкреНрдЯ | рдбрд┐рдХреНрд░рд┐рдкреНрдЯ
тАФтАФ+тАФтАФтАФтАФтАФ+тАФтАФтАФтАФ
1 | x31 | x31
2 | x32 | x32
3 | x33 | x33
...
999 | x393939 | x393939
1000 | x31303030 | x31303030
(1000 рдкрдВрдХреНрддрд┐рдпрд╛рдБ)

рд╕рдордп: 50,203 рдорд┐.рд╕реЗ

рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо:

 
рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдмрд┐рдирд╛
рдкреАрдЬреАрдХреНрд░рд┐рдкреНрдЯреЛ (рдбрд┐рдХреНрд░рд┐рдкреНрдЯ)

рдирдореВрдирд╛ 1000 рдкрдВрдХреНрддрд┐рдпрд╛рдБ
1,386 рдПрдордПрд╕
50,203 рдПрдордПрд╕

рд╕реА рдкреА рдпреВ
15% рддрдХ
35% рддрдХ

рдбрдХреИрддреА
 
+ 5%

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЛрдИ рд╕рд┐рд▓реНрд╡рд░ рдмреБрд▓реЗрдЯ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рджреЗрддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рддрдХ рдкреВрд░реНрдг рдкрд╣реБрдВрдЪ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХред

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

рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдбреАрдмреАрдПрдордПрд╕: рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрдХрд░рдг рдЪреБрдирддреЗ рд╕рдордп рдЖрдкрдХреЛ рдХреНрдпрд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП
MongoDB рдореЗрдВ рдРрд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдФрд░ рдореБрдХреНрдд рд╕реНрд░реЛрдд DBMS рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ

рдХрд╛рд░реНрдп
рдЯрд╛рдЗрдк
рдкрд╛рд╕рд╡рд░реНрдб рдиреАрддрд┐
рд▓реЗрдЦрд╛ рдкрд░реАрдХреНрд╖рд╛
рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рдирд╛
рдЖрд░рдПрд▓рдПрд╕
рдХреВрдЯрд▓реЗрдЦрди

рдУрд░реЗрдХрд▓
рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ
+
+
+
+
+

рдПрдордПрд╕рдХреНрдпреВрдПрд▓
рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ
+
+
+
+
+

рдЬрдЯреЛрдмрд╛
рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ
+
+
+
+
рдПрдХреНрд╕рдЯреЗрдВрд╢рди

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓
рдореБрдХреНрдд
рдПрдХреНрд╕рдЯреЗрдВрд╢рди
рдПрдХреНрд╕рдЯреЗрдВрд╢рди
-
+
рдПрдХреНрд╕рдЯреЗрдВрд╢рди

рдореЛрдВрдЧреЛрдбреАрдмреА
рдореБрдХреНрдд
-
+
-
-
рдХреЗрд╡рд▓ MongoDB рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ

рддрд╛рд▓рд┐рдХрд╛ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реИ: рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ, рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдореЗрдВ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдРрдб-рдСрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрдИ рдлрд╝рдВрдХреНрд╢рди рдЧрд╛рдпрдм рд╣реИрдВ , рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдХреБрдЫ рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рд╕рд╡рд░реНрдб рдиреАрддрд┐рдпрд╛рдВ - PostgreSQL рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИрдВ (1, 2, 3, 4, 5), рдЬреЛ рдкрд╛рд╕рд╡рд░реНрдб рдиреАрддрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдШрд░реЗрд▓реВ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕реЗрдЧрдореЗрдВрдЯ рдХреА рд╕рднреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╣реАрдВ рднреА рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЬрд░реВрд░рдд рд╣реИ рддреЛ рдХреНрдпрд╛ рдХрд░реЗрдВ?? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ DBMS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рдирдХреА рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдлрд┐рд░ рдЖрдк рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди DBMS рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд░рд┐рдкреНрдЯреЛ DB рдпрд╛ рдЧрд╛рд░реНрдбрд╛ DBред рдпрджрд┐ рд╣рдо рдШрд░реЗрд▓реВ рдЦрдВрдб рдХреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ GOSTs рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЗрд╣рддрд░ рдЬрд╛рдирддреЗ рд╣реИрдВред

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЬреЛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦреЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрддрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд▓рд╛рдЧреВ рдХрд░реЗрдВред рд╕рдЪ рд╣реИ, GOST рдХреЗ рд╕рд╛рде рдпрд╣ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдбреЗрдЯрд╛ рдЫрд┐рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЗрд╕реЗ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░ рдкрд░ рд╣реАред рд╕рд╛рде рд╣реА, рддреБрд░рдВрдд рд╕реЛрдЪреЗрдВ рдХрд┐ рдЖрдк рдЗрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗред рд╣рдорд╛рд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ DBMS рд╕реНрддрд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдкрд╣рд▓реА рдмрд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рдереА @рдбреЗрдЯрд╛рдмреЗрд╕ рдореАрдЯрдЕрдк Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЙрд▓реНрдпреВрд╢рдВрд╕ рджреНрд╡рд╛рд░рд╛ред рджреЗрдЦрдирд╛ рд╡реАрдбрд┐рдпреЛ рдЕрдиреНрдп рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдкрд░ рдИрд╡реЗрдВрдЯ рдШреЛрд╖рдгрд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ Mail.ru рдЧреНрд░реБрдк рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдЖрд╕рдкрд╛рд╕.

рд╡рд┐рд╖рдп рдкрд░ рдФрд░ рдХреНрдпрд╛ рдкрдврд╝рдирд╛ рд╣реИ:

  1. рд╕реЗрдл рд╕реЗ рдЕрдзрд┐рдХ: рдПрдорд╕реАрдПрд╕ рдХреНрд▓рд╛рдЙрдб рдмреНрд▓реЙрдХ рд╕реНрдЯреЛрд░реЗрдЬ.
  2. рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдЪреБрдиреЗрдВ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рджреЛрдмрд╛рд░рд╛ рдЪрдпрди рди рдХрд░рдирд╛ рдкрдбрд╝реЗ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ