рдмрд┐рд▓реНрдбрд░реНрд╕рд╕рд╛рдареА B2B рд╕реЗрд╡реЗрдЪреЗ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ

рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдирдХреНрд╖рдо рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рди рдЬрд╛рддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ 10 рдкрдЯ рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╢реА рд░рд╛рдЦрд╛рдпрдЪреА? рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧреЗрди рдХреА рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрддреАрд▓ рдШрд╕рд░рдгреАрдЪрд╛ рд╕рд╛рдордирд╛ рдХрд╕рд╛ рдХреЗрд▓рд╛, рдЖрдореНрд╣реА рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рд╕реЗрд╡рд╛ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╕рдВрдЧрдгрдХреАрдп рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рдХрд┐рдВрдордд рд╡рд╛рдврд╡реВ рдирдпреЗ рдореНрд╣рдгреВрди рдЖрдореНрд╣реА SQL рдХреНрд╡реЗрд░реА рдХрд╢реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реА.

рдореА рдмрд╛рдВрдзрдХрд╛рдо рдХрдВрдкрдиреНрдпрд╛рдВрдордзреАрд▓ рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реЗрд╡рд╛ рддрдпрд╛рд░ рдХрд░рддреЛ. рдЖрдордЪреНрдпрд╛рд╕реЛрдмрдд рд╕реБрдорд╛рд░реЗ рддреАрди рд╣рдЬрд╛рд░ рдХрдВрдкрдиреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛рдд. 3 рд╣рдЬрд╛рд░рд╛рдВрд╣реВрди рдЕрдзрд┐рдХ рд▓реЛрдХ рджрд░рд░реЛрдЬ 10-4 рддрд╛рд╕ рдЖрдордЪреНрдпрд╛ рд╕рд┐рд╕реНрдЯрдорд╕реЛрдмрдд рдХрд╛рдо рдХрд░рддрд╛рдд. рд╣реЗ рдирд┐рдпреЛрдЬрди, рд╕реВрдЪрдирд╛, рдЪреЗрддрд╛рд╡рдгреА, рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рдЪреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ... рдЖрдореНрд╣реА PostgreSQL 10 рд╡рд╛рдкрд░рддреЛ. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╕реБрдорд╛рд░реЗ 9.6 рдЯреЗрдмрд▓реНрд╕ рдЖрд╣реЗрдд рдЖрдгрд┐ рджрд░рд░реЛрдЬ 300 рджрд╢рд▓рдХреНрд╖ рдкреНрд░рд╢реНрди (200 рд╣рдЬрд╛рд░ рднрд┐рдиреНрди) рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛рдд. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рд╕рд░рд╛рд╕рд░реА 10-3 рд╣рдЬрд╛рд░ рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрд╣реЗрдд, рд╕рд░реНрд╡рд╛рдд рд╕рдХреНрд░рд┐рдп рдХреНрд╖рдгреА рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж 4 рд╣рдЬрд╛рд░ рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрд╣реЗрдд. рдмрд╣реБрддреЗрдХ рдкреНрд░рд╢реНрди OLAP рдЖрд╣реЗрдд. рддреНрдпрд╛рдд рдЦреВрдк рдХрдореА рдЬреЛрдбрдгреЗ, рдмрджрд▓ рдЖрдгрд┐ рд╣рдЯрд╡рдгреЗ рдЖрд╣реЗрдд, рдпрд╛рдЪрд╛ рдЕрд░реНрде OLTP рд▓реЛрдб рддреБрд▓рдиреЗрдиреЗ рд╣рд▓рдХрд╛ рдЖрд╣реЗ. рдореА рд╣реЗ рд╕рд░реНрд╡ рдЖрдХрдбреЗ рджрд┐рд▓реЗ рдЖрд╣реЗрдд рдЬреЗрдгреЗрдХрд░реБрди рддреБрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реВ рд╢рдХрд╛рд▓ рдЖрдгрд┐ рдЖрдордЪрд╛ рдЕрдиреБрднрд╡ рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдХрд┐рддреА рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ рд╣реЗ рд╕рдордЬреВ рд╢рдХреЗрд▓.

рдЪрд┐рддреНрд░ рдПрдХ. рдЧреЗрдп

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

рдЪрд┐рддреНрд░ рджреЛрди. рд╕рд╛рдВрдЦреНрдпрд┐рдХреА

рддреНрдпрд╛рдореБрд│реЗ рдЖрдордЪреНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ рджрд░рд░реЛрдЬ рд╕реБрдорд╛рд░реЗ 10 рд╣рдЬрд╛рд░ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдХреНрд╡реЗрд░реА рдЖрд╣реЗрдд. рдпрд╛ 10 рд╣рдЬрд╛рд░рд╛рдВрдкреИрдХреА, рдЕрд╕реЗ рд░рд╛рдХреНрд╖рд╕ рдЖрд╣реЗрдд рдЬреЗ 2-3 рдПрдордПрд╕рдЪреНрдпрд╛ рд╕рд░рд╛рд╕рд░реА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╡реЗрд│реЗрд╕рд╣ 0.1-0.3 рджрд╢рд▓рдХреНрд╖ рд╡реЗрд│рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ 30 рд╕реЗрдХрдВрджрд╛рдВрдЪреНрдпрд╛ рд╕рд░рд╛рд╕рд░реА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╡реЗрд│реЗрд╕рд╣ рдХреНрд╡реЗрд░реА рдЖрд╣реЗрдд рдЬреНрдпрд╛рдВрдирд╛ рджрд┐рд╡рд╕рд╛рддреВрди 100 рд╡реЗрд│рд╛ рдореНрд╣рдЯрд▓реЗ рдЬрд╛рддреЗ.

рд╕рд░реНрд╡ 10 рд╣рдЬрд╛рд░ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ рд╢рдХреНрдп рдирд╡реНрд╣рддреЗ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдбреЗрдЯрд╛рдмреЗрд╕рдЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдордЪреЗ рдкреНрд░рдпрддреНрди рдХреЛрдареЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рдЕрдиреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддреАрдирдВрддрд░, рдЖрдореНрд╣реА рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА.

рд╢реАрд░реНрд╖ рд╡рд┐рдирдВрддреНрдпрд╛

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

рд╕рд░реНрд╡ рдХрдВрдкрдиреНрдпрд╛рдВрдЪрд╛ рдиреЗрд╣рдореАрдЪрд╛ рд╕рд░рд╛рд╡ рдЯреЙрдк рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рдЖрд╣реЗ. рддреНрдпрд╛рдкреИрдХреА рдХрд╛рд╣реА рдЖрд╣реЗрдд; рдЕрдЧрджреА рдПрдХ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реНрдпрд╛рдиреЗ 5-10% рд╕рдВрд╕рд╛рдзрдиреЗ рдореБрдХреНрдд рд╣реЛрдК рд╢рдХрддрд╛рдд. рддрдерд╛рдкрд┐, рдкреНрд░рдХрд▓реНрдк рдЬрд╕рдЬрд╕рд╛ рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛрдд рдЬрд╛рддреЛ, рддрд╕рддрд╕реЗ рдЯреЙрдк рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ рд╣реЗ рдПрдХ рдХреНрд╖реБрд▓реНрд▓рдХ рдХрд╛рдо рдмрдирддреЗ. рд╕рд░реНрд╡ рд╕реЛрдкреНрдпрд╛ рдкрджреНрдзрддреА рдЖрдзреАрдЪ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд "рдЬрдб" рд╡рд┐рдирдВрддреАрд╕рд╛рдареА "рдХреЗрд╡рд│" 3-5% рд╕рдВрд╕рд╛рдзрдиреЗ рд▓рд╛рдЧрддрд╛рдд. рдЬрд░ рдПрдХреВрдг рдЯреЙрдк рдкреНрд░рд╢реНрдирд╛рдВрдирд╛ 30-40% рдкреЗрдХреНрд╖рд╛ рдХрдореА рд╡реЗрд│ рд▓рд╛рдЧрддреЛ, рддрд░ рдмрд╣реБрдзрд╛ рддреБрдореНрд╣реА рддреНрдпрд╛ рд▓рд╡рдХрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдзреАрдЪ рдкреНрд░рдпрддреНрди рдХреЗрд▓реЗ рдЕрд╕рддреАрд▓ рдЖрдгрд┐ рдкреБрдвреАрд▓ рдЧрдЯрд╛рддреАрд▓ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрдвреЗ рдЬрд╛рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ.
рдпрд╛ рдЧрдЯрд╛рдд рдХрд┐рддреА рд╢реАрд░реНрд╖ рдХреНрд╡реЗрд░реА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реНрдпрд╛ рдкрд╛рд╣рд┐рдЬреЗрдд рдпрд╛ рдкреНрд░рд╢реНрдирд╛рдЪреЗ рдЙрддреНрддрд░ рджреЗрдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ. рдореА рд╕рд╣рд╕рд╛ рдХрдореАрддрдХрдореА 10 рдШреЗрддреЛ, рдкрд░рдВрддреБ 20 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдирд╛рд╣реА. рдореА рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ рдХреА TOP рдЧрдЯрд╛рддреАрд▓ рдкрд╣рд┐рд▓реНрдпрд╛ рдЖрдгрд┐ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рд╡реЗрд│реЗрдд 10 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡реЗрд│рд╛ рдлрд░рдХ рдирд╕рд╛рд╡рд╛. рдореНрд╣рдгрдЬреЗрдЪ, рдЬрд░ рдХреНрд╡реЗрд░реА рдЕрдВрдорд▓рд╛рдд рдЖрдгрдгреНрдпрд╛рдЪреА рд╡реЗрд│ 1рд▓реНрдпрд╛ рд╕реНрдерд╛рдирд╛рд╡рд░реВрди 10рд╡реНрдпрд╛ рд╕реНрдерд╛рдирд╛рд╡рд░ рд╡реЗрдЧрд╛рдиреЗ рдШрд╕рд░рд▓реА, рддрд░ рдореА TOP-10 рдШреЗрддреЛ, рдЬрд░ рдбреНрд░реЙрдк рдЕрдзрд┐рдХ рд╣рд│реВрд╣рд│реВ рдЕрд╕реЗрд▓, рддрд░ рдореА рдЧрдЯ рдЖрдХрд╛рд░ 15 рдХрд┐рдВрд╡рд╛ 20 рдкрд░реНрдпрдВрдд рд╡рд╛рдврд╡рддреЛ.
рдмрд┐рд▓реНрдбрд░реНрд╕рд╕рд╛рдареА B2B рд╕реЗрд╡реЗрдЪреЗ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ

рдордзреНрдпрдо рд╢реЗрддрдХрд░реА

рдпрд╛ рд╕рд░реНрд╡ рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрд╣реЗрдд рдЬреНрдпрд╛ TOP рдирдВрддрд░ рд▓рдЧреЗрдЪ рдпреЗрддрд╛рдд, рд╢реЗрд╡рдЯрдЪрд╛ 5-10% рдЕрдкрд╡рд╛рдж рд╡рдЧрд│рддрд╛. рд╕рд╣рд╕рд╛, рдпрд╛ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рддрд╛рдирд╛ рд╕рд░реНрд╡реНрд╣рд░рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рдЕрд╕рддреЗ. рдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ 80% рдкрд░реНрдпрдВрдд рд╡рдЬрди рдХрд░реВ рд╢рдХрддрд╛рдд. рдкрд░рдВрддреБ рдЬрд░реА рддреНрдпрд╛рдВрдЪрд╛ рд╡рд╛рдЯрд╛ 50% рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЭрд╛рд▓рд╛ рдЕрд╕реЗрд▓, рддрд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдЕрдзрд┐рдХ рдХрд╛рд│рдЬреАрдкреВрд░реНрд╡рдХ рдкрд╛рд╣рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ.

рд╢реЗрдкреВрдЯ

рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдпрд╛ рдХреНрд╡реЗрд░реА рд╢реЗрд╡рдЯреА рдпреЗрддрд╛рдд рдЖрдгрд┐ 5-10% рд╡реЗрд│ рдШреЗрддрд╛рдд. рдЬрд░ рддреБрдореНрд╣реА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХреНрд╡реЗрд░реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рдд рдирд╕рд╛рд▓ рддрд░рдЪ рддреБрдореНрд╣реА рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрджреНрджрд▓ рд╡рд┐рд╕рд░реВ рд╢рдХрддрд╛, рдирдВрддрд░ рддреНрдпрд╛рдВрдирд╛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рд╕реНрд╡рд╕реНрдд рдЕрд╕реВ рд╢рдХрддреЗ.

рдкреНрд░рддреНрдпреЗрдХ рдЧрдЯрд╛рдЪреЗ рдореВрд▓реНрдпрдорд╛рдкрди рдХрд╕реЗ рдХрд░рд╛рд╡реЗ?

рдореА рдПрдХ SQL рдХреНрд╡реЗрд░реА рд╡рд╛рдкрд░рддреЛ рдЬреА PostgreSQL рд╕рд╛рдареА рдЕрд╕реЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рддреЗ (рдорд▓рд╛ рдЦрд╛рддреНрд░реА рдЖрд╣реЗ рдХреА рдЗрддрд░ рдЕрдиреЗрдХ DBMS рд╕рд╛рдареА рдЕрд╢реАрдЪ рдХреНрд╡реЗрд░реА рд▓рд┐рд╣рд┐рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ)

TOP-MEDIUM-TAIL рдЧрдЯрд╛рдВрдЪреНрдпрд╛ рдЖрдХрд╛рд░рд╛рдЪрд╛ рдЕрдВрджрд╛рдЬ рд▓рд╛рд╡рдгреНрдпрд╛рд╕рд╛рдареА SQL рдХреНрд╡реЗрд░реА

SELECT sum(time_top) AS sum_top, sum(time_medium) AS sum_medium, sum(time_tail) AS sum_tail
FROM
(
  SELECT CASE WHEN rn <= 20              THEN tt_percent ELSE 0 END AS time_top,
         CASE WHEN rn > 20 AND rn <= 800 THEN tt_percent ELSE 0 END AS time_medium,
         CASE WHEN rn > 800              THEN tt_percent ELSE 0 END AS time_tail
  FROM (
    SELECT total_time / (SELECT sum(total_time) FROM pg_stat_statements) * 100 AS tt_percent, query,
    ROW_NUMBER () OVER (ORDER BY total_time DESC) AS rn
    FROM pg_stat_statements
    ORDER BY total_time DESC
  ) AS t
)
AS ts

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

рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдЪреЗ рдХрд╛рдо рд╕реБрд░реВ рдЭрд╛рд▓реЗ рддреЗрд╡реНрд╣рд╛рдЪреНрдпрд╛ рдЖрдгрд┐ рдЖрддреНрддрд╛рдЪреНрдпрд╛ рд╡реЗрд│реА рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреЗ рд╢реЗрдЕрд░реНрд╕ рдЕрдВрджрд╛рдЬреЗ рддреБрд▓рдирд╛ рдХрд░рддрд╛рдд.

рдмрд┐рд▓реНрдбрд░реНрд╕рд╕рд╛рдареА B2B рд╕реЗрд╡реЗрдЪреЗ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ

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

рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪрд╛ рдордЬрдХреВрд░ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рд╡рд┐рдирдВрддреА рд╡рд╛рдкрд░рддреЛ

SELECT * FROM (
  SELECT ROW_NUMBER () OVER (ORDER BY total_time DESC) AS rn, total_time / (SELECT sum(total_time) FROM pg_stat_statements) * 100 AS tt_percent, query
  FROM pg_stat_statements
  ORDER BY total_time DESC
) AS T
WHERE
rn <= 20 -- TOP
-- rn > 20 AND rn <= 800 -- MEDIUM
-- rn > 800  -- TAIL

рдпреЗрдереЗ рд╕рд░реНрд╡рд╛рдд рд╕рд╛рдорд╛рдиреНрдпрдкрдгреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рддрдВрддреНрд░рд╛рдВрдЪреА рд╕реВрдЪреА рдЖрд╣реЗ рдЬреНрдпрд╛рдиреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╢реАрд░реНрд╖ рдХреНрд╡реЗрд░реАрдВрдЪрд╛ рд╡реЗрдЧ рд╡рд╛рдврд╡рд┐рдгреНрдпрд╛рдд рдорджрдд рдХреЗрд▓реА:

  • рд╕рд┐рд╕реНрдЯреАрдордЪреЗ рд░реАрдбрд┐рдЭрд╛рдЗрди, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдирд┐рдпрддрдХрд╛рд▓рд┐рдХ рдХреНрд╡реЗрд░реАрдВрдРрд╡рдЬреА рдореЗрд╕реЗрдЬ рдмреНрд░реЛрдХрд░рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХрдЪреА рдкреБрдирд░реНрд░рдЪрдирд╛ рдХрд░рдгреЗ
  • рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЬреЛрдбрдгреЗ рдХрд┐рдВрд╡рд╛ рдмрджрд▓рдгреЗ
  • рд╢реБрджреНрдз SQL рд╡рд░ ORM рдХреНрд╡реЗрд░реА рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд┐рдд рдЖрд╣реЗ
  • рдЖрд│рд╢реА рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рддрд░реНрдХ рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд┐рдд рдЖрд╣реЗ
  • рдбреЗрдЯрд╛ рдбрд┐рдиреЛрд░реНрдорд▓рд╛рдпрдЭреЗрд╢рдирджреНрд╡рд╛рд░реЗ рдХреЕрд╢рд┐рдВрдЧ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЯреЗрдмрд▓ рдХрдиреЗрдХреНрд╢рди рдбрд┐рд▓рд┐рд╡реНрд╣рд░реА -> рдЗрдирд╡реНрд╣реЙрдЗрд╕ -> рд╡рд┐рдирдВрддреА -> рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд╣реЗ. рдореНрд╣рдгрдЬреЗрдЪ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рддрд░рдг рдЗрддрд░ рд╕рд╛рд░рдгреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ. рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдирдВрддреАрдордзреНрдпреЗ рд╕рд░реНрд╡ рд╕рд╛рд░рдгреНрдпрд╛рдВрдЪрд╛ рджреБрд╡рд╛ рдЬреЛрдбреВ рдирдпреЗ рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдбрд┐рд▓рд┐рд╡реНрд╣рд░реА рдЯреЗрдмрд▓рдордзреАрд▓ рд╡рд┐рдирдВрддреАрдЪреА рд▓рд┐рдВрдХ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗрд▓реА.
  • рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХрд╛рдВрд╕рд╣ рд╕реНрдерд┐рд░ рд╕рд╛рд░рдгреНрдпрд╛ рдХреЕрд╢ рдХрд░рдгреЗ рдЖрдгрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдорд░реАрдордзреНрдпреЗ рдХреНрд╡рдЪрд┐рддрдЪ рдмрджрд▓рдгрд╛рд░реЗ рдЯреЗрдмрд▓.

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

рдордЧ рдЖрдореНрд╣реА рдЖрдордЪреЗ рд▓рдХреНрд╖ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреНрдпрд╛ рджреБрд╕рд▒реНрдпрд╛ рдЧрдЯрд╛рдХрдбреЗ рд╡рд│рд╡рд▓реЗ - рдордзреНрдпрдо рд╢реЗрддрдХрд▒реНрдпрд╛рдВрдЪреНрдпрд╛ рдЧрдЯрд╛рдХрдбреЗ. рддреНрдпрд╛рдд рдЕрдЬреВрди рдмрд░реЗрдЪ рдкреНрд░рд╢реНрди рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕рдВрдкреВрд░реНрдг рдЧрдЯрд╛рдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рд╛рдпрд▓рд╛ рдЦреВрдк рд╡реЗрд│ рд▓рд╛рдЧреЗрд▓ рдЕрд╕реЗ рд╡рд╛рдЯрд▓реЗ. рддрдерд╛рдкрд┐, рдмрд░реНтАНрдпрд╛рдЪ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдЧрджреА рд╕реЛрдкреНрдпрд╛ рд╣реЛрддреНрдпрд╛ рдЖрдгрд┐ рдмрд░реНтАНрдпрд╛рдЪ рд╕рдорд╕реНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рднрд┐рдиреНрдирддреЗрдордзреНрдпреЗ рдбрдЭрдирднрд░ рд╡реЗрд│рд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдЭрд╛рд▓реНрдпрд╛. рдпреЗрдереЗ рдХрд╛рд╣реА рдард░рд╛рд╡рд┐рдХ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдЪреА рдЙрджрд╛рд╣рд░рдгреЗ рдЖрд╣реЗрдд рдЬреА рдЖрдореНрд╣реА рдбрдЭрдирднрд░ рд╕рдорд╛рди рдХреНрд╡реЗрд░реАрдВрд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЖрдгрд┐ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд╡реЗрд░реАрдВрдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЧрдЯрд╛рдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ 3-5% рдиреЗ рдЕрдирд▓реЛрдб рдХреЗрд▓рд╛.

  • COUNT рдЖрдгрд┐ рд╕рдВрдкреВрд░реНрдг рдЯреЗрдмрд▓ рд╕реНрдХреЕрди рд╡рд╛рдкрд░реВрди рд░реЗрдХреЙрд░реНрдбрдЪреА рдЙрдкрд╕реНрдерд┐рддреА рддрдкрд╛рд╕рдгреНрдпрд╛рдРрд╡рдЬреА, EXISTS рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА
  • DISTINCT рдкрд╛рд╕реВрди рд╕реБрдЯрдХрд╛ рдорд┐рд│рд╛рд▓реА (рдХреЛрдгрддреАрд╣реА рд╕рд╛рдорд╛рдиреНрдп рдХреГрддреА рдирд╛рд╣реА, рдкрд░рдВрддреБ рдХрд╛рд╣реАрд╡реЗрд│рд╛ рдЖрдкрдг рд╡рд┐рдирдВрддреАрдЪрд╛ рд╡реЗрдЧ 10-100 рд╡реЗрд│рд╛ рд╡рд╛рдврд╡реВрди рд╕рд╣рдЬрдкрдгреЗ рдпрд╛рдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдК рд╢рдХрддрд╛).

    рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдбрд┐рд▓рд┐рд╡реНрд╣рд░реАрдЪреНрдпрд╛ рдореЛрдареНрдпрд╛ рдЯреЗрдмрд▓рдордзреВрди рд╕рд░реНрд╡ рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд╡реЗрд░реАрдРрд╡рдЬреА (рд╡рд┐рддрд░рдг)

    SELECT DISTINCT P.ID, P.FIRST_NAME, P.LAST_NAME
    FROM DELIVERY D JOIN PERSON P ON D.DRIVER_ID = P.ID
    

    рддреБрд▓рдиреЗрдиреЗ рд▓рд╣рд╛рди рдЯреЗрдмрд▓ PERSON рд╡рд░ рдХреНрд╡реЗрд░реА рдХреЗрд▓реА

    SELECT P.ID, P.FIRST_NAME, P.LAST_NAME
    FROM PERSON
    WHERE EXISTS(SELECT D.ID FROM DELIVERY WHERE D.DRIVER_ID = P.ID)
    

    рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рдЖрдореНрд╣реА рд╕рд╣рд╕рдВрдмрдВрдзрд┐рдд рд╕рдмрдХреНрд╡реЗрд░реА рд╡рд╛рдкрд░рд▓реА рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреА 10 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡реЗрд│рд╛ рд╕реНрдкреАрдбрдЕрдк рджреЗрддреЗ.

  • рдмрд░реНтАНрдпрд╛рдЪ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, COUNT рдкреВрд░реНрдгрдкрдгреЗ рд╕реЛрдбреВрди рджреЗрдгреНрдпрд╛рдд рдЖрд▓реЗ рд╣реЛрддреЗ рдЖрдгрд┐
    рдЕрдВрджрд╛рдЬреЗ рдореВрд▓реНрдпрд╛рдЪреНрдпрд╛ рдЧрдгрдиреЗрдиреЗ рдмрджрд▓рд▓реЗ
  • рддреНрдпрд╛рдРрд╡рдЬреА
    UPPER(s) LIKE JOHN%тАЩ 
    

    рд╡рд╛рдкрд░рд╛

    s ILIKE тАЬJohn%тАЭ
    

рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдирдВрддреАрд▓рд╛ рдХрдзреАрдХрдзреА 3-1000 рд╡реЗрд│рд╛ рдЧрддреА рджрд┐рд▓реА рдЬрд╛рддреЗ. рдкреНрд░рднрд╛рд╡реА рдХрд╛рдордЧрд┐рд░реА рдЕрд╕реВрдирд╣реА, рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рд╡рд╛рдЯрд▓реЗ рдХреА рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА 10 ms рд▓рд╛рдЧрдгрд╛рд▒реНрдпрд╛ рдХреНрд╡реЗрд░реАрд▓рд╛ рдЕрдиреБрдХреВрд▓ рдХрд░рдгреНрдпрд╛рдд рдХрд╛рд╣реА рдЕрд░реНрде рдирд╛рд╣реА, рддреА 3рд░реНтАНрдпрд╛ рд╢рдВрднрд░ рд╕рд░реНрд╡рд╛рдд рднрд╛рд░реА рдХреНрд╡реЗрд░реАрдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдПрдХреВрдг рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЛрдб рд╡реЗрд│реЗрдЪреНрдпрд╛ рд╢рдВрднрд░рд╛рд╡рд╛ рднрд╛рдЧ рдШреЗрддреЗ. рдкрдг рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░рд╛рддреАрд▓ рдкреНрд░рд╢реНрдирд╛рдВрдЪреНрдпрд╛ рдЧрдЯрд╛рд▓рд╛ рддреАрдЪ рд░реЗрд╕рд┐рдкреА рд▓рд╛рдЧреВ рдХрд░реВрди рдЖрдореНрд╣реА рдХрд╛рд╣реА рдЯрдХреНрдХреЗ рдкрд░рдд рдорд┐рд│рд╡рд▓реЗ. рд╕рд░реНрд╡ рд╢реЗрдХрдбреЛ рдкреНрд░рд╢реНрдирд╛рдВрдЪреЗ рдореЕрдиреНрдпреБрдЕрд▓реА рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрд░рдгреНрдпрд╛рдд рд╡реЗрд│ рд╡рд╛рдпрд╛ рдШрд╛рд▓рд╡реВ рдирдпреЗ рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдЕрдиреЗрдХ рд╕реЛрдкреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╣рд┐рд▓реНрдпрд╛ рдЬреНрдпрд╛ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдХреНрд╡реЗрд░реА рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддреА рд╡рд╛рдкрд░рддрд╛рдд. рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реБрдк, рдЖрдкреЛрдЖрдк рдХреНрд╡реЗрд░реАрдЪреЗ рдЧрдЯ рд╢реЛрдзрдгреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдорд╛рдлрдХ рдкреНрд░рдпрддреНрдирд╛рдиреЗ рдЖрдордЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЖрдгрдЦреА рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

рдкрд░рд┐рдгрд╛рдореА, рдЖрдореНрд╣реА рддреАрди рд╡рд░реНрд╖рд╛рдВрдкрд╛рд╕реВрди рдПрдХрд╛рдЪ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рд╡рд░ рдХрд╛рдо рдХрд░рдд рдЖрд╣реЛрдд. рд╕рд░рд╛рд╕рд░реА рджреИрдирд┐рдХ рднрд╛рд░ рд╕реБрдорд╛рд░реЗ 30% рдЖрд╣реЗ, рд╢рд┐рдЦрд░рд╛рдВрдордзреНрдпреЗ рддреЗ 70% рдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрддреЗ. рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛, рддрд╕реЗрдЪ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛, рдЕрдВрджрд╛рдЬреЗ 10 рдкрдЯ рд╡рд╛рдврд▓реА рдЖрд╣реЗ. рдЖрдгрд┐ рд╣реЗ рд╕рд░реНрд╡ TOP-MEDIUM рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдорд╛рди рдЧрдЯрд╛рдВрдЪреНрдпрд╛ рд╕рддрдд рджреЗрдЦрд░реЗрдЦреАрд╕рд╛рдареА рдзрдиреНрдпрд╡рд╛рдж. TOP рдЧрдЯрд╛рдордзреНрдпреЗ рдирд╡реАрди рд╡рд┐рдирдВрддреА рджрд┐рд╕рддрд╛рдЪ, рдЖрдореНрд╣реА рддреНрд╡рд░рд┐рдд рддреНрдпрд╛рдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдЪрд╛ рд╡реЗрдЧ рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ. рдЖрдореНрд╣реА рдХреНрд╡реЗрд░реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░реВрди рдЖрдард╡рдбреНрдпрд╛рддреВрди рдПрдХрджрд╛ MEDIUM рдЧрдЯрд╛рдЪреЗ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрд░рддреЛ. рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдзреАрдЪ рдорд╛рд╣рд┐рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдирд╡реАрди рдХреНрд╡реЗрд░реА рдЖрдврд│рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рддреНрд╡рд░реАрдд рдмрджрд▓рддреЛ. рдХрд╛рд╣реАрд╡реЗрд│рд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдирд╡реАрди рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдкрджреНрдзрддреА рд╕рд╛рдкрдбрддрд╛рдд рдЬреНрдпрд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рдкреНрд░рд╢реНрдирд╛рдВрд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд.

рдЖрдордЪреНрдпрд╛ рдЕрдВрджрд╛рдЬрд╛рдиреБрд╕рд╛рд░, рд╡рд░реНрддрдорд╛рди рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдд рдЖрдгрдЦреА 3-5 рдкрдЯ рд╡рд╛рдв рд╕рд╣рди рдХрд░реЗрд▓. рдЦрд░реЗ рдЖрд╣реЗ, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдордЪреНрдпрд╛ рд╕реНрд▓реАрд╡реНрд╣рд╡рд░ рдЖрдгрдЦреА рдПрдХ рдПрдХреНрдХрд╛ рдЖрд╣реЗ - рдЖрдореНрд╣реА рдЕрджреНрдпрд╛рдк SELECT рдХреНрд╡реЗрд░реА рдорд┐рд░рд░рдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдирд╛рд╣реАрдд, рдЬрд╕реЗ рдХреА рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реА рдЬрд╛рддреЗ. рдкрд░рдВрддреБ рдЖрдореНрд╣реА рд╣реЗ рдЬрд╛рдгреАрд╡рдкреВрд░реНрд╡рдХ рдХрд░рдд рдирд╛рд╣реА, рдХрд╛рд░рдг рдЖрдореНрд╣рд╛рд▓рд╛ "рд╣реЗрд╡реА рддреЛрдлрдЦрд╛рдирд╛" рдЪрд╛рд▓реВ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА "рд╕реНрдорд╛рд░реНрдЯ" рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдЪреА рд╢рдХреНрдпрддрд╛ рдкреВрд░реНрдгрдкрдгреЗ рд╕рдВрдкрд╡рд╛рдпрдЪреА рдЖрд╣реЗ.
рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХрд╛рдорд╛рд╡рд░ рдПрдХ рдЧрдВрднреАрд░ рджреГрд╖реНрдЯреАрдХреНрд╖реЗрдк рдЙрднреНрдпрд╛ рд╕реНрдХреЗрд▓рд┐рдВрдЧрдЪрд╛ рд╡рд╛рдкрд░ рд╕реБрдЪрд╡реВ рд╢рдХрддреЛ. рддрдЬреНрдЮрд╛рдВрдЪрд╛ рд╡реЗрд│ рд╡рд╛рдпрд╛ рдШрд╛рд▓рд╡рдгреНрдпрд╛рдРрд╡рдЬреА рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рд░реНрд╡реНрд╣рд░ рдЦрд░реЗрджреА рдХрд░рд╛. рд╕рд░реНрд╡реНрд╣рд░рдЪреА рдХрд┐рдВрдордд рдХрджрд╛рдЪрд┐рдд рдЬрд╛рд╕реНрдд рдирд╕реЗрд▓, рд╡рд┐рд╢реЗрд╖рдд: рдЖрдореНрд╣реА рдЕрджреНрдпрд╛рдк рдЙрднреНрдпрд╛ рд╕реНрдХреЗрд▓рд┐рдВрдЧрдЪреА рдорд░реНрдпрд╛рджрд╛ рд╕рдВрдкрд▓реЗрд▓реА рдирд╛рд╣реА. рддрдерд╛рдкрд┐, рдХреЗрд╡рд│ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ 10 рдкрдЯ рд╡рд╛рдврд▓реА. рдЕрдиреЗрдХ рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрдд, рд╕рд┐рд╕реНрдЯрдордЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рдврд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рдЖрддрд╛ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрд╣реЗрдд. рдХреЕрд╢рд┐рдВрдЧрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реЗрд▓реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрдореА рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдгрд┐ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рд╡рд┐рдирдВрддреНрдпрд╛рдВрдордзреНрдпреЗ рдХреЗрд▓реА рдЬрд╛рддреЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рд╡реЗрдЧ рдЧреБрдгрд╛рдВрдХ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рдЖрдгрдЦреА 5 рдиреЗ рдЧреБрдгрд╛рдХрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛. рддрд░, рд╕рд░реНрд╡рд╛рдд рдкреБрд░рд╛рдгрдорддрд╡рд╛рджреА рдЕрдВрджрд╛рдЬрд╛рдиреБрд╕рд╛рд░, рдЖрдореНрд╣реА рдЕрд╕реЗ рдореНрд╣рдгреВ рд╢рдХрддреЛ рдХреА рдкреНрд░рд╡реЗрдЧ 50 рдкрдЯ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рд╣реВрди рдЕрдзрд┐рдХ рд╣реЛрддрд╛. рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рдЕрдиреБрд▓рдВрдм рд╕реНрд╡рд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА 50 рдкрдЯ рдЬрд╛рд╕реНрдд рдЦрд░реНрдЪ рдпреЗрдИрд▓. рд╡рд┐рд╢реЗрд╖рдд: рдПрдХрджрд╛ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдХреЗрд▓реЗ рдХреА рддреЗ рд╕рд░реНрд╡ рд╡реЗрд│ рдХрд╛рдо рдХрд░рддреЗ рдЖрдгрд┐ рднрд╛рдбреНрдпрд╛рдиреЗ рдШреЗрддрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рдЪреЗ рдмрд┐рд▓ рджрд░рдорд╣рд╛ рдпреЗрддреЗ.

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

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