MySQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╡реЗрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд░рдгрдиреАрддрд┐

рдкрд░рд┐рдЪрдп


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

рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ "рдзреАрдореА" рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рднреА рднрд╛рд░реА рдлреНрд░реЗрдорд╡рд░реНрдХ (рдЬреИрд╕реЗ рд╕рд┐рдореНрдлрдиреА рдпрд╛ рдЖрд░рдУрдЖрд░), рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдореБрдЦреНрдп "рдмреНрд░реЗрдХ" SQL рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рдЕрдирдкрдврд╝ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд░рдВрднреАрдХрд░рдг рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рд╕рд┐рдореНрдлрдиреА рдкрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рдЬрдЯрд┐рд▓ рдФрд░ рдмрдбрд╝рд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рд▓рдЧрднрдЧ 80 рдПрдордПрд╕ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдкреГрд╖реНрда рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрднреА-рдХрднреА рд╕реЗрдХрдВрдб рдпрд╛ рдЕрдзрд┐рдХ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ)ред

рдпрджрд┐ рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ рдХрд┐ рдпрд╣ рдЖрдкрдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдФрд░ рдЖрдкрдХреА MySQL рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рддреЛ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЛ рдареЛрд╕ рдЙрдкрд╛рдп рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░ DBMS рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдШрдЯрдирд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЕрдбрд╝рдЪрдиреЛрдВ рдХреА рдкрд╣рдЪрд╛рди


рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд╛рдн рд╣рдореЗрд╢рд╛ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИрдВред рдпрд╣рд╛рдВ рд╕рд╛рдорд╛рдиреНрдп рд╕рд▓рд╛рд╣ рджреЗрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди, рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдорд╛рдкрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдбреАрдмреАрдПрдордПрд╕ рдЪрд╛рд▓рдХ рдореЗрдВ рдкреГрд╖реНрда рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп (рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ) рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХрд╛ рдХреБрд▓ рдкреНрд░рддрд┐рд╢рддред рдпрджрд┐ рдпрд╣ рдкреНрд░рддрд┐рд╢рдд рд▓рдЧрднрдЧ 50 рдФрд░ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдФрдЪрд┐рддреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред

рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдорд╛рдкрдирд╛ рд╣реИ


рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ "рдЦрд░рд╛рдм" (рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рдЪреМрдЦрдЯреЗ рдФрд░ / рдпрд╛ рд╕реАрдПрдордПрд╕ рдореЗрдВ рдбреАрдмреАрдПрдордПрд╕ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдХрд░рдг рд╣реИрдВ - рдЖрдорддреМрд░ рдкрд░, рдкреНрд░рддрд┐ рдкреГрд╖реНрда рдХрдо рд╕реЗ рдХрдо рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣рдореЗрд╢рд╛ рдЧрд┐рдиреА рдЬрд╛рддреА рд╣реИред рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐ рдкреГрд╖реНрда рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 100 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ - рдпрд╣ рдмреБрд░рд╛ рд╣реИ :), рдФрд░ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ DBMS рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреНрд░рд╢реНрди рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрднреА рднреА рд░рд╛рдХреНрд╖рд╕реА рд░реВрдк рд╕реЗ рдзреАрдорд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдкреНрд░рднрд╛рд╡ рдХреНрдпрд╛ рд╣реИред

рдорд╛рдкрдиреЗ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп


рдмреЗрд╢рдХ, "рдзреАрдореА" рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рдордзреНрдпрдо рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рд╣реИ рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИ (рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐ рдХреБрдЫ рдЕрдиреБрд░реЛрдз "рдзреАрдорд╛ рд╣реЛ")ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдЕрдЪреНрдЫреА рд╣реИ, рдЬрдм DBMS рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ MySQL рд╕рд░реНрд╡рд░ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рд╣реИ рддрд╛рдХрд┐ I / O рдиреНрдпреВрдирддрдо рд╣реЛ, рдЖрджрд┐, рдЕрд░реНрдерд╛рдд, рдЬрдм рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордпред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рд╕реАрдкреАрдпреВ рдХреЗ рд╕рдордп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдХрд╛рд░рдХреЛрдВ рдХреА рдПрдХ рдиреНрдпреВрдирддрдо рд╣реЛрдЧреАред рдФрд░ рдЕрдЧрд░ рдХреНрд╡реЗрд░реА рдХреИрд╢ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдмрд╕ рдЙрд╕реА рдХреНрд╡реЗрд░реА рдХреЛ рджреЛрд╣рд░рд╛рддреЗ рд╣реБрдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рджреЗрдЧрд╛ (рдЬрдм рддрдХ рдХрд┐ рд╕реНрдЯреЙрдк рд╕реВрдЪреА рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ )ред

рдпрджрд┐ рдЖрдк рдПрдХ рджреЗрд╡-рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ, рдЕрдХреНрд╕рд░, рдЕрдиреБрд░реЛрдз "рдзреАрдорд╛" рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдПрдХ рдЖрдХрд╕реНрдорд┐рдХ рдмрд╛рд╣рд░реА рднрд╛рд░ рдпрд╛ рдПрдХ рдкреНрд░рддрд┐рдмрдВрдз I / O рдХреЗ рдХрд╛рд░рдгред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкреГрд╖реНрда рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдФрд░ рдЙрд╕реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдореЗрдВ MySQL dev рд╕рд░реНрд╡рд░ рдкрд░ рдХреНрд╡реЗрд░реА рдХреИрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмреЗрд╢рдХ рддреБрд░рдВрдд рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ)ред

рдЪреВрдВрдХрд┐, рдЕрдХреНрд╕рд░, рджреЗрд╡ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдмрд╣реБрдд "рдЙрдЫрд▓" рд╣реЛрддрд╛ рд╣реИ, рдзреАрдореЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдорд╛ рдмрд╣реБрдд рдмрдбрд╝реЗ рдорд╛рдиреЛрдВ рдкрд░ рд╕реЗрдЯ рд╣реЛрддреА рд╣реИ (рдкреНрд░реЛрдкреЗрд▓ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдкреЗрд▓ рдореЗрдВ, рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, 100 рдПрдордПрд╕) рдпрд╛ рдзреАрд░реЗ-рдзреАрд░реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред I / O рдХреЛ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрдирд╛

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

рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЦреЛрдЬ


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

рдореИрдВ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 100,000 рд░рд┐рдХреЙрд░реНрдб some_field рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИрдВ):

рдкреНрд▓реЗрдЯ
CREATE TABLE some_table(id INT PRIMARY KEY AUTO_INCREMENT, some_field INT) 

рд╣рдо рдПрдХ рд╕рд░рд▓ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ 100,000 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдЧрд╛ рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛
 SELECT * FROM some_table WHERE some_field = 100500 ORDER BY id LIMIT 100 

рд╣рдо MySQL 5.1.49 рдкрд░ рджреЗрдЦреЗрдВ
 EXPLAIN SELECT * FROM some_table WHERE some_field = 100500 ORDER BY id LIMIT 100 

EXPLAIN рдХрд╣рддрд╛ рд╣реИ: рдирдкрд▓рдирд┐рдХ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ 100 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдореИрдВ рдкреНрд░рд╛рдЗрдорд░ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдирдкрд▓рдирд┐рдХ рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рдореБрдЭреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдЧрддрд╛ рд╣реИ, рдореИрдВ рдЕрдкрдиреА рдорд╛рдБ рдХреА рдХрд╕рдо рдЦрд╛рддрд╛ рд╣реВрдВ!

рд╣рдо рдПрдХ рд╕рд░рд▓ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ 100 рд▓рд╛рдЗрдиреЛрдВ (рдпрд╛ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ) рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛
 SELECT * FROM some_table WHERE some_field <> 0 ORDER BY id LIMIT 100 

рд╣рдо MySQL 5.0.51 рдкрд░ рджреЗрдЦреЗрдВ
 EXPLAIN SELECT * FROM some_table WHERE some_field <> 0 ORDER BY id LIMIT 100 

EXPLAIN рдХрд╣рддрд╛ рд╣реИ: рдПрдХ рдирдкрд▓рдирд┐рдХ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ резрежреж,режрежреж рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдореИрдВ рдкреНрд░рд╛рдердорд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛, рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЬрд╛рдЧреЗрдЧрд╛, рдирдкрд▓рдирд┐рдХ рдХреЗ рд▓рд┐рдП! (рд╣рд╛рдВ, рд╡рд╣реА рдХрд╣рддрд╛ рд╣реИ, рдореИрдВ рдордВрдЬрд┐рд▓ рджреЗрддрд╛ рд╣реВрдВ :))

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

рд╣рдо рдкрдврд╝реА рдЧрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЧрд┐рдирддреЗ рд╣реИрдВ


рдпрджрд┐ рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП MySQL рдореЗрдВ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рддрд░реАрдХрд╛ рд╣реИ, рддреЛ рдЖрдк рдЧрд▓рдд рд╣реИрдВ (рдЗрддрдиреА рджреЗрд░ рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдореИрдВрдиреЗ рднреА рдРрд╕рд╛ рд╣реА рд╕реЛрдЪрд╛ рдерд╛ :))ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди:
 SET query_cache_type = OFF; --  query cache ,   FLUSH STATUS; --   :) SELECT * FROM some_table WHERE some_field = 100500 ORDER BY id LIMIT 100; --   SHOW SESSION STATUS LIKE 'handler_%' --  ;)! 

рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЫрд╡рд┐ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛:



рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ MySQL рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдХреНрдпрд╛ рд╣реИ, рдЖрдк рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MySQL рдореЗрдВ HANDLER рдХрдорд╛рдВрдб рдХрд╛ рд╡рд░реНрдгрдиред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣реИрдВрдбрд▓рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП MySQL рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ (рдФрд░ рди рдХреЗрд╡рд▓) рдХреЛ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред MySQL рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ рдХрд╛ рдирд╛рдо рднреА рдЖрдкрдХреЛ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЬрд╛рдирд╡рд░ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреГрд╖реНрда рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкрд╣рд▓реЗ 2 рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ (рдХреНрд╡реЗрд░реА рдХреИрд╢ рдмрдВрдж рдХрд░рдирд╛ рдФрд░ рдЖрдБрдХрдбрд╝реЗ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛), рдФрд░ рдкреГрд╖реНрда рдХреЗ рдЕрдВрддрд┐рдо рдЫреЛрд░ рдкрд░ - рдЕрдВрддрд┐рдо рдХреНрд╡реЗрд░реА, рдЖрдк MySQL рд╕реЗ рдкрдврд╝реА / рд▓рд┐рдЦреА рдХреБрд▓ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рдерд╛, рдореИрдВрдиреЗ рдкреГрд╖реНрда рдкрд░ рдЕрд▓рд░реНрдЯ () рдХреЛ рджреЗрд╡ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдерд╛ рдпрджрд┐ рдкреГрд╖реНрда рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 10,000 рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЗрдВ рдкрдврд╝реА / рд▓рд┐рдЦреА рдЧрдИ рдереАрдВред

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

рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреА рдЧрдИ рд╕реВрдЪрдирд╛ рдХреА рдорд╛рддреНрд░рд╛


рд╕рддреНрд░ рд╕реНрдерд┐рддрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ SQL рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА (рдмрд╛рдЗрдЯреНрд╕_%) - рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ "рд╡рд┐рд╕реНрддреГрдд" рдЯреЗрдмрд▓ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдУрдЖрд░рдПрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп,) рдЬреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рд╕рднреА рд╕реНрддрдВрднреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рд╡рд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рди рд╣реЛрдВ)

рджрд░рдЕрд╕рд▓, рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди


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

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рд╖рдп рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА :)ред рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдореИрдВ рдмрд╛рдзрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдФрд░ рд╕рд┐рдореНрдлрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ ~ 1000 рдПрдордПрд╕ рд╕реЗ 200-300 рдПрдордПрд╕ рдХреЗ рдмреАрдЪ рдХрд╣реАрдВ рдкрд░ рдХрдо рдХрд░ рджрд┐рдпрд╛ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдЙрдкрдХрд░рдг рдЬреЛрдбрд╝ рджрд┐рдпрд╛ред рдпрд╣ рд╕рдм рдореБрдЭреЗ рдПрдХ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП ~ 20 рдПрдордмреА рд╕рдХреНрд░рд┐рдп "рд╕реНрд╡рдпрдВ" (рдХреБрд▓ 100 рдПрдордмреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдб) PHP рдХреЛрдб :) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 3 рджрд┐рди рд▓рдЧ рдЧрдПред рдпрд╣ рдПрдХ рдмрд╣реБрдд рдпрд╛ рдереЛрдбрд╝рд╛ рд╣реИ - рдЕрдкрдиреЗ рд▓рд┐рдП рд╕реЛрдЪреЗрдВ :)

Source: https://habr.com/ru/post/In130905/


All Articles