рдкрд░рд┐рдЪрдп
MySQL рдПрдХ рдмрд╣реБрдд рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдЙрддреНрдкрд╛рдж рд╣реИред рдПрдХ рдУрд░, рдпрд╣ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди / рдХреНрд╡реЗрд░реА рдкрд░ рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдПрдХ рдЕрддреБрд▓рдиреАрдп рдЧрддрд┐ рд▓рд╛рдн рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЗрд╕рдореЗрдВ рдРрд╕рд╛ рдЕрд╡рд┐рдХрд╕рд┐рдд (рдпрджрд┐ рдЕрд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реИ) рдЖрд╢рд╛рд╡рд╛рджреА рд╣реИ рдХрд┐ рдпрд╣ рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рдПрдХрдореБрд╢реНрдд рд╣рд╛рд░ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЕрдиреБрдХреВрд▓рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рд╕реАрдорд╛ рдХреЛ "рд╡рд┐рд╕реНрддреГрдд" рдФрд░ рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ 10 рдореАрдЯрд░ рддрдХ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдФрд░ рдЖрдХрд╛рд░ рдореЗрдВ 20Gb рддрдХ, рдЙрдирдХреЗ рд╕рд╛рде рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдЕрдиреБрд░реЛрдз рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрдИ рд▓рд╛рдЦреЛрдВ рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ 100 рдмрд╛рдЗрдЯ рдЖрдХрд╛рд░ рдореЗрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╛рдВрдЪ рд╕рд░рд▓ рд╕рдВрднрд╡ рдкреНрд░рд╢реНрди рд╣реИрдВ, рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред
NB: MySQL innodb / percona рдЗрдВрдЬрди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдмрд╛рдж рдмрд╕ MySQLред рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рд╢реНрди рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЬрд╛рдирдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдХреНрд╡реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ / рдпрд╛ рдХреНрд╡реЗрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗред рд╣рдо рдирд┐рдпрдорд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ (
select_type = simple ) рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рдХрд╛рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдмрд┐рдирд╛
рдЬреЙрдЗрди ,
рд╕рдмрдХреНрд╡реЗрд░реА рдФрд░ рдЬреЙрдЗрди рдХреЗ ред
рд╣рдо рдмрд╣реБрдд рдЫреЛрдЯреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдЕрдХреНрд╕рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛
рдкреНрд░рдХрд╛рд░ = рд╕рднреА (рдкреВрд░реНрдг рд╕реНрдХреИрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 40 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ред MySQL рдореЗрдВ рдХрдИ рдЕрдиреБрдХреНрд░рдорд┐рдд (
рдЗрдВрдбреЗрдХреНрд╕ рдорд░реНрдЬ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрд╣реБрдд рдмрд╛рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓
рдХреНрд░рдо рдХреЗ рдмрд┐рдирд╛ред
рдЗрдВрдбреЗрдХреНрд╕ рдорд░реНрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдордЭрджрд╛рд░ рддрд░реАрдХрд╛
OR рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрдВрднреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред
рдПрдХ рдФрд░ рд╡рд┐рд╖рдпрд╛рдВрддрд░: рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдардХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рдЕрдХреНрд╕рд░ рдХреНрд╡реЗрд░реА рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдпрд╛ рдЙрд╕ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВ, рдЖрдкрдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
explain extended select xxx;
рдФрд░ рдлрд┐рд░
show warnings;
рдЬреЛ рдЖрд╢рд╛рд╡рд╛рджреА рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдЕрдиреБрд░реЛрдз рджрд┐рдЦрд╛рдПрдЧрд╛ред
рдХрд╡рд░рд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ - рдореЛрдЯреЗ рдЯреЗрдмрд▓реНрд╕ рд╕реЗ рдЗрдВрдбреЗрдХреНрд╕ рддрдХ
рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдп: рд╣рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЕрдиреБрд░реЛрдз рд╣реИ, рдЬреЛ рдЕрдХреНрд╕рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдзреАрдореА рд╣реИред
рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдкрд╕рдВрдж рдХреЗ рд░реВрдк рдореЗрдВ
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдХреНрд╡реЗрд░реА рдбрд╛рд▓рдиреЗ рдХреА рд░рдгрдиреАрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ? рд╣рд╛рдВ, MySQL рдХреЗрд╡рд▓ B- рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, MySQL рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ (рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдирдХреЗ рдКрдкрд░ рдЕрдиреБрдХреВрд▓реА рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рднреА рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ) - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рдм MySQL рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╢рд╛рдирджрд╛рд░ рд╡реГрджреНрдзрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмреЗрд╣рддрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрдореГрддрд┐ рдореЗрдВ рд▓реЛрдб рд╕реВрдЪрдХрд╛рдВрдХ, рд▓реЗрдХрд┐рди рдбрд┐рд╕реНрдХ рдкрд░ (
рдкреНрд░рдХрд╛рд░ = рд╕реВрдЪрдХрд╛рдВрдХ / рд╕реАрдорд╛ рдХреЗ рд▓рд┐рдП )ред рдЗрд╕рд▓рд┐рдП рдХрдИ рдирд┐рд╖реНрдХрд░реНрд╖:
- рдЗрдВрдбреЗрдХреНрд╕ рдЬреЛ рдмрд╣реБрдд рднрд╛рд░реА рд╣реИрдВ рд╡реЗ рдмреБрд░рд╛рдИ рд╣реИрдВред рдпрд╛ рддреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрднреА рддрдХ рдореЗрдореЛрд░реА рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рджрдмрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- рдпрджрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЖрдХрд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдпрд╛ рдпрджрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд╛ рд╕реЗрдЯ рд╕рд░реНрд╡рд░ рдХреА рдореЗрдореЛрд░реА рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИ, рддреЛ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдХреВрд▓рди рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ TEXT рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдд / рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рд╣реИ - рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдлрд╝рд╛рдЗрд▓реЙрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдпреА рдХрд░рдирд╛ ред
рдПрдХ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ рдЬрд┐рд╕реЗ рдЖрдк рдХрднреА-рдХрднреА рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ MySQL рдХреЗрд╡рд▓ рдХреНрд▓рд╕реНрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рддрд╛ рд╣реИред рдХреНрд▓рд╕реНрдЯрд░ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреА рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди (рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ) рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рд░рд┐рдХреЙрд░реНрдб, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди MySQL, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд▓реБрдХрдЕрдк рдХреЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ, рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдХреБрдВрдЬреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ
рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА (рдЖрдИрдбреА), рдХреБрдВрдЬреА (рдП, рдмреА, рд╕реА) рд╣реИ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рджреВрд╕рд░реА рдХреБрдВрдЬреА
(рдП, рдмреА, рд╕реА) рдирд╣реАрдВ рд╣реИ , рд▓реЗрдХрд┐рди
(рдП, рдмреА, рд╕реА, рдЖрдИрдбреА) ред рдЗрд╕рд▓рд┐рдП рдиреИрддрд┐рдХрддрд╛ - рд╡рд╕рд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдмреБрд░рд╛рдИ рд╣реИред
рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреИрд╢рд┐рдВрдЧ рдореЗрдВ рдЕрдВрддрд░ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ PostgreSQL / Oracle caches рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рдиреНрд╕ (рдЬреИрд╕реЗ рдХрд┐ рдХреБрдЫ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ), рддреЛ MySQL рд╕рд┐рд░реНрдлрд╝ рдХреНрд╡реЗрд░реА STRING (рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рд╕рд╣рд┐рдд) рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдЖрдк рд▓рдЧрд╛рддрд╛рд░ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ
select AAA from BBB where CCC=DDD
рдХрдИ рдмрд╛рд░ - рдЕрдЧрд░
рдбреАрдбреАрдбреА рдореЗрдВ рдмрджрд▓рддреЗ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░
рдПрдПрдП рддрд╛рд▓рд┐рдХрд╛ рдирд╣реАрдВ рдмрджрд▓реА рдЬрд╛рддреА рд╣реИ (рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЕрд▓рдЧрд╛рд╡ рдХреЗ рдЕрд░реНрде рдореЗрдВ), рдкрд░рд┐рдгрд╛рдо рд╕реАрдзреЗ рдХреИрд╢ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдмрд╣реБрдд рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╕реБрдзрд╛рд░ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдХреЛ рдХрдИ рдмрд╛рд░ рдирд╣реАрдВ рдХрд╣рддреЗ рд╣реИрдВред рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдПрдХ рдХрд╡рд░рд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдХреНрдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
- рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЦрдВрдб рдЖрджреЗрд╢ рдХреЛ рджреЗрдЦреЗрдВ ред рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдЙрд╕реА рдХреЙрд▓рдо рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рд┐рд╡рд░реНрд╕ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдореЗрдВ рдХреНрд░рдо рд╕реЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИред рдпрджрд┐ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рддреНрдпрдХреНрд╖ рдпрд╛ рд░рд┐рд╡рд░реНрд╕ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдмрд╛рдд рд╣реИ рд▓реЗрдХрд┐рди ... MySQL рдЕрднреА рднреА рдорд┐рд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдореЗрд╢рд╛ asc рд╣реИ ред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ A asc, B desc рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рд╣реИ - рддреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрд▓рд╡рд┐рджрд╛ рдХрд╣реЗрдВред
- рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдХреЙрд▓рдо рдХреЛ рдХрд╡рд░реЗрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдЕрдВрддрд╣реАрди рд╡реГрджреНрдзрд┐ рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рдмрд╛рд░ рдпрд╣ рдПрдХ рдЕрд╕рдВрднрд╡ рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЬреЛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдмреБрд░рд╛рдИ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдмрд┐рдВрджреБ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╣реИ - рд╕реЗрд▓реНрдл рдЬреНрд╡рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдпрд╣реА рд╣реИ, рдкрдВрдХреНрддрд┐ рдЪрдпрди рдФрд░ рдбреЗрдЯрд╛ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджреА рдЧрдИ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдХреЗрд╡рд▓ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдХреЙрд▓рдо (рдЬреЛ рд╣рдореЗрд╢рд╛ рдЗрдВрдбреЗрдХреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВ) рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рдЗрд╕реА рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХреЙрд▓рдо рдХреЗ рдЪрдпрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рдЪрдпрди рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реНрд╡рдЪреНрдЫ рдФрд░ рджреВрд╕рд░реЗ рдЪрдпрди рдХреЗ рд▓рд┐рдП eq_ref (рдмрд╣реБрд╡рдЪрди рдХрд╛ рд╕рд╛рд░) рд╣реЛрдЧрд╛ред рддреЛ, рд╣рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдорд┐рд▓рддрд╛ рд╣реИ:
select AAA,BBB,CCC,DDD from tableName as a join tableName as b using (PK) ┬лwhere over table b┬╗
- рдЖрдЧреЗ рдЬрд╣рд╛рдВ рд╣реИ рдпрд╣рд╛рдВ, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдкреВрд░реЗ рд╕реВрдЪрдХрд╛рдВрдХ ( рдЯрд╛рдЗрдк = рдЗрдВрдбреЗрдХреНрд╕ ) рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд╣рдореЗрдВ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЯрд╛рдЗрдк = рд░реЗрдВрдЬ ( >,> =, <, <=, рдЬреИрд╕реЗ "xxx%" рдФрд░ рдЗрд╕рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ) ред рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдЙрди рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЖрдк index_merge рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдпрд╣ рдЬрдЯрд┐рд▓ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
рджрд░рдЕрд╕рд▓, рдпрд╣ рд╕рдм рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, MySQL рдЕрдиреБрдХреВрд▓рдХ рд╣рдореЗрд╢рд╛ рдПрдХ рдХрд╡рд░рд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рд╣реЛрдиреЗ рдкрд░ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЦреИрд░, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдорд╛рдирдХ
рдЙрдкрдпреЛрдЧ / рдмрд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рдХ рдХрд╛ рдорджрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдПрдХ рдЖрд╡рд░рдг рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ рдореЛрдЯреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЕрд▓рдЧрд╛рд╡ - рдореЛрдЯреА рдЕрдиреБрдХреНрд░рдорд┐рдд рд╕реЗ рдкрддрд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╢реНрди рд╣реИрдВ, рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЫрдВрдЯрд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдореЛрдЯреЗ рдлрд╝реАрд▓реНрдб (
varchar ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ? рдмрд╕ рдПрдХ рд▓рд╛рдЦ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ
varchar рдлрд╝реАрд▓реНрдб рдЗрдВрдбреЗрдХреНрд╕ рд╕рд╛рдЗрдЬрд╝
(100) рдХреА рдЧрд┐рдирддреА рдХрд░реЗрдВред рдФрд░ рдпрджрд┐ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╡рд░рд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рд╣реИрдВ? рдХреНрдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди (рдпрд╛ рд▓рдЧрднрдЧ рд╕рдорд╛рди) рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП, рдЗрд╕ рдореЛрдЯреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдореЗрдореЛрд░реА рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реИ? рддреЛ - рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБред
- рдореЛрдЯреЗ рдФрд░ рдкрддрд▓реЗ рдЦреЗрддред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдореЛрдЯреЗ рдорд╛рд░реНрдЬрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдПрдХ рджреБрд░реНрдЧрдо рд▓рдХреНрдЬрд░реА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ, рд╣рдореЗрдВ рдПрдХ рдореЛрдЯреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдХреБрдВрдЬреА рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрд╣рд╛рдВ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреГрддреНрд░рд┐рдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред рдпрд╣реА рд╣реИ, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдореЛрдЯреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
select A from tableName where A=1 or fatB='test'
рдХреБрдВрдЬреА рдХреБрдВрдЬреА (fatB, A) рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдПрдХ рдкрддрд▓реА рдХреБрдВрдЬреА (рдХреБрдВрдЬреА) рдФрд░ рдПрдХ рдореЛрдЯреА рдХреБрдВрдЬреА (fatB) рдмрдирд╛рдПрдВрдЧреЗ ред рдФрд░ рд╣рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
create temporary table tmp as select PK from tableName where fatB='test'; select A from tableName left join tmp using (PK) where A=1 or tmp.PK is not null;
рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдкрддрд▓реА рдХреБрдВрдЬреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдореЛрдЯреА рдлрд╝реАрд▓реНрдб
рд╡рд╕рд╛рдмреА рдХреЗ рд▓рд┐рдП ред рд▓рдЧрднрдЧ рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореЗрдореЛрд░реА рдмрдЪрддред
рдЖрддреНрдо рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ
рдпрд╣ рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рдХреА рдХреБрдВрдЬреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рд╕реНрдореГрддрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рдФрд░ рдлрд╝реЙрд░реНрдо рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
select A,B,C,D from tableName where A=1 and B=2 or C=3 and D like 'test%'; select A,C,D from tableName where B=3 or C=3 and D ='test' order by B;
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛
рдкреНрд░рдХрд╛рд░ = рд╢реНрд░реЗрдгреА рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдирд┐рд░реНрдзрд╛рд░рдг рдирд╣реАрдВ рд╣реИред
рдкреНрд░рдпреБрдХреНрдд рд╕рд╛рд╣рд┐рддреНрдп рдХреА рд╕реВрдЪреА
- рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди MySQL, рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг
рдЕрдиреБрдХреВрд▓рди, рдмреИрдХрдЕрдк, рдкреНрд░рддрд┐рдХреГрддрд┐, рдФрд░ рдЕрдзрд┐рдХ
рдмреИрд░рди рд╢реНрд╡рд╛рд░реНрдЯреНрдЬ рджреНрд╡рд╛рд░рд╛, рдкреАрдЯрд░ рдЬреЗрддреНрд╕реЗрд╡, рд╡рд╛рджрд┐рдо рдЯрдХрд╛рдЪреЗрдВрдХреЛ, рдЬреЗрд░реЗрдореА рдбреАред рдЬрд╝реЙрд╡рдбрдиреА, рдЕрд░рдЬреЗрди рд▓реЗрдВрдЯреЗрдЬрд╝, рдбреЗрд░реЗрдХ рдЬреЗред рдмреЙрд▓рд┐рдВрдЧ
рдкреНрд░рдХрд╛рд╢рдХ: рдУ'рд░рд┐рд▓реА рдореАрдбрд┐рдпрд╛
рд░рд┐рд▓реАрдЬрд╝: рдЬреВрди 2008
рдкреЗрдЬ: 712 - www.mysqlperformanceblog.com