
рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рдореЗрд░рд╛ рдирд╛рдо Maxim Matyukhin рд╣реИ, рдореИрдВ PHP рдореЗрдВ PHP рдкреНрд░реЛрдЧреНрд░рд╛рдорд░
рд╣реВрдБ ред рд╣рдорд╛рд░реЗ рдХрд╛рдо рдореЗрдВ, рд╣рдо рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ MySQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдХрдореА рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдЗрд╕рдХреЗ рдХрд╛рдо рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
2010 рдореЗрдВ, Yoshinori Matsunobu рдиреЗ рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ рдирд╛рдордХ NoSQL MySQL рдкреНрд▓рдЧрдЗрди рдкреЗрд╢ рдХрд┐рдпрд╛ред рдпрд╣ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 750,000 рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдЙрддреНрд╕реБрдХ рд╣реЛ рдЧрдП, рдФрд░ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рд╣рдордиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд╣рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдЗрддрдирд╛ рдкрд╕рдВрдж рдЖрдпрд╛ рдХрд┐ рд╣рдордиреЗ
рдкреНрд░рд╕реНрддреБрддрд┐рдпрд╛рдБ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рд╣реИрдВрдбрд▓рд░рдХреЗрдЯ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рд╡рд╛рд▓реЗ
рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рд▓рдЧреЗред
рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рд╣рдо рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдереЗ - MySQL 5.7 рдХреЗ рдмрд╛рдж рд╕реЗ рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдУрд░реЗрдХрд▓ рд╕реЗ рдПрдХ рдФрд░ рдкреНрд▓рдЧрдЗрди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ - рдЗрдиреЛрдмреАрдбреА рдореЗрдореЗрдХреИрдЪреНрдб рдкреНрд▓рдЧрдЗрди, рдЬрд┐рд╕рдиреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ред
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ 2013 рдореЗрдВ MySQL 5.6 рдореЗрдВ рдореЗрдореНрдХреЗрдЪреНрдб рдкреНрд▓рдЧрдЗрди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╡реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ: рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓реЗрдмрд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореЗрдордХреЗрдб рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рдкрдХ рдЕрдиреБрднрд╡ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реЛрддреА рд╣реИред InnoDB рдореЗрдореНрдХреЗрдЪреНрдб рдкреНрд▓рдЧрдЗрди рд╕реЗ рд╣рдореЗрдВ рдЙрд╕реА рд╕рд░рд▓рддрд╛ рдХреА рдЙрдореНрдореАрдж рдереАред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкреИрдЯрд░реНрди рдкреНрд░рд▓реЗрдЦрди рдФрд░ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд▓реЛрдЧреЛрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИрдВ, рддреЛ рдмрд╣реБрдд рд╕рд╛рд░реА рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рдФрд░ рд╕реАрдорд╛рдПрдВ рдкреЙрдк рдЕрдк рд╣реЛрддреА рд╣реИрдВ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
MySQL рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдПрдХ рдирдП рддрд░реАрдХреЗ рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдирдП рдореЗрдореЗрдХ рдХрд┐рдП рдЧрдП рдкреНрд▓рдЧрдЗрди рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдпрд╣ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдерд╛ред
рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, MySQL рдиреЗ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЛрд░реНрдЯ рд╕реБрдирдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛:
- рдкрд╣рд▓рд╛ рдкреЛрд░реНрдЯ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
- рджреВрд╕рд░рд╛ рдкреЛрд░реНрдЯ рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкреЛрд░реНрдЯ рдкрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдерд╛ (рдХреЛрдИ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рдерд╛), рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж "рдУрдкрди рдЗрдВрдбреЗрдХреНрд╕" рдХрдорд╛рдВрдб (рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрдорд╛рдВрдб рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдХрд┐рд╕ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рд╣рдо рдХрд┐рд╕ рдлреАрд▓реНрдб рдореЗрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдкрдврд╝реЗрдВ (рдпрд╛ рд▓рд┐рдЦреЗрдВ)ред
рдпрджрд┐ "рдУрдкрди рдЗрдВрдбреЗрдХреНрд╕" рдХрдорд╛рдВрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрд╕ рдкреЛрд░реНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ GETs рдпрд╛ INSERT / UPDATE / DELETE рдХрдорд╛рдВрдб рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╣реИрдВрдбрд▓рд░рдХреЗрдЯ рдиреЗ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдкрд░ рди рдХреЗрд╡рд▓ рдЬреАрдИрдЯреА рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдмрд▓реНрдХрд┐ рдПрдХ рдЧреИрд░-рдЕрдиреВрдареЗ рд╕реВрдЪрдХрд╛рдВрдХ, рд░реЗрдВрдЬ рдирдореВрдиреЗ, рд╕рдорд░реНрдерд┐рдд рдорд▓реНрдЯреАрдЧреЗрдЯ рдФрд░ рд▓рд┐рдорд┐рдЯ рд╕реЗ рд╕рд░рд▓ рдирдореВрдиреЗ рднреА рд▓рд┐рдПред рдЙрд╕реА рд╕рдордп, рд╕рд╛рдзрд╛рд░рдг рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реЗ рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдпрд╣, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдиреЗ SQL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗрдирджреЗрди рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдФрд░ рдлрд┐рд░ рд╣реИрдВрдбрд▓рд░рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рд╛ред
рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рд░рд╕реЙрдХреЗрдЯ рдиреЗ рдПрдкреЛрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдзрд╛рдЧреЗ рдХреЗ рд╕реАрдорд┐рдд рдкреВрд▓ рдХреЗ рд╕рд╛рде рд╕рднреА рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рд╛, рдЗрд╕рд▓рд┐рдП рджрд╕рд┐рдпреЛрдВ рд╣рдЬрд╛рд░ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЖрд╕рд╛рди рдерд╛, рдЬрдмрдХрд┐ MySQL рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдзрд╛рдЧрд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд╣реБрдд рд╕реАрдорд┐рдд рдереАред
рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╕рд╛рдзрд╛рд░рдг MySQL рд╕рд░реНрд╡рд░ рд╣реИ - рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рдПрдХ рддрдХрдиреАрдХред рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдФрд░ рдореЙрдирд┐рдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдорд╛рдирдХ MySQL рдФрд░ InnoDB рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред
рдмреЗрд╢рдХ, рдЕрд╕реБрд╡рд┐рдзрд╛рдПрдВ рдереАрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдЦреИрд░, рд╣реИрдВрдбрд▓рд░рд╕реЙрдХреЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдбреАрдмрдЧ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред
рд╣реИрдВрдбрд▓рд░рд╕реЙрдХреЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдпрд╣рд╛рдБ рдФрд░ рдкрдврд╝реЗрдВред рдЖрдк
рд╣рдорд╛рд░реА рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
InnoDB рдореЗрдорд╕реНрдХреИрд▓реНрдб рдкреНрд▓рдЧрдЗрди
рдирдпрд╛ рдореЗрдореЙрдХреНрдб рдкреНрд▓рдЧрдЗрди рд╣рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ?
рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рд╡рд┐рдЪрд╛рд░ MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдореЗрдореЙрдХреНрдб рдХрдорд╛рдВрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореНрдХреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
рдЖрдк
рдпрд╣рд╛рдВ рдкреНрд▓рдЧрдЗрди рдХреЗ рдореБрдЦреНрдп рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдкрдврд╝ рд╕рдХрддреЗ
рд╣реИрдВ ред
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
- рд╕реАрдкреАрдпреВ рдХреА рдХрдо рдЦрдкрддред
- рдбреЗрдЯрд╛ рдХреЛ InnoDB рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреБрдЫ рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред
- рдЖрдк рдореЗрдордХрд╛рдЯреЗрдб рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдЙрдиреНрд╣реЗрдВ MySQL рдмрд┐рд▓реНрдЯ-рдЗрди рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдРрд╕реЗ рдкреНрд▓рд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
- рддреЗрдЬ рдФрд░ рд╕рд╕реНрддрд╛ рдХрдиреЗрдХреНрд╢рдиред рдПрдХ рдирд┐рдпрдорд┐рдд MySQL рдХрдиреЗрдХреНрд╢рди рдХреЛ рдПрдХ рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдореЗрдореНрдХреЗрдЪреНрдб рдкреНрд▓рдЧрдЗрди рдореЗрдВ, рдПрдХ рдереНрд░реЗрдб рдЗрд╡реЗрдВрдЯ рд▓реВрдк рдореЗрдВ рд╕рднреА рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдПрдХ GET рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдХрдИ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- рдпрджрд┐ MySQL HandlerSocket рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдореЗрдорд╕реНрдХреИрд▓реЗрдЯреЗрдб рдкреНрд▓рдЧрдЗрди рдореЗрдВ "рдУрдкрди рдЯреЗрдмрд▓" рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рднреА рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдПрдХ рд╣реА рдкреЛрд░реНрдЯ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВред
рдкреНрд▓рдЧрдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ
рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдкреГрд╖реНрда рдереЗ:
- InnoDB рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ ред
- InnoDB рдореЗрдХрд┐рди рдЗрдВрдЯрд░реНрдирд▓реНрд╕ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ ред
рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, MySQL рдкреЛрд░реНрдЯ 11211 (рдорд╛рдирдХ рдореЗрдореЗрдХрдЯреЗрдб рдкреЛрд░реНрдЯ) рдкрд░ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛рдмреЗрд╕ (рд╕реНрдХреАрдорд╛) innodb_memcache рднреА рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред
рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдореЗрдЬ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдореЗрдореЗрдХреИрд▓реНрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
CREATE TABLE `auth` ( `email` varchar(96) NOT NULL, `password` varchar(64) NOT NULL, `type` varchar(32) NOT NULL DEFAULT '', PRIMARY KEY (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
рдФрд░ рдЖрдк рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЫреЛрдбрд╝реА рдЧрдИ рдХреБрдВрдЬреА рдФрд░ SQL рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрджреЛрд╖_memcache.container рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдмреАрдЪ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ (рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд┐рд╡рд░рдг рд╣рдЯрд╛ рджрд┐рдпрд╛):
CREATE TABLE `containers` ( `name` varchar(50) NOT NULL, `db_schema` varchar(250) NOT NULL, `db_table` varchar(250) NOT NULL, `key_columns` varchar(250) NOT NULL, `value_columns` varchar(250) DEFAULT NULL, `flags` varchar(250) NOT NULL DEFAULT '0', `cas_column` varchar(250) DEFAULT NULL, `expire_time_column` varchar(250) DEFAULT NULL, `unique_idx_name_on_key` varchar(250) NOT NULL, PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT
рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖реЗрддреНрд░:
- рдирд╛рдо - рдЖрдкрдХреА Memcached рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрд╕рд░реНрдЧ;
- db_schema - рдЖрдзрд╛рд░ (рд╕рд░реНрдХрд┐рдЯ) рдХрд╛ рдирд╛рдо;
- db_table рдЖрдкрдХреА рддрд╛рд▓рд┐рдХрд╛ рд╣реИ;
- key_columns - рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗ (рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдЖрдкрдХреА рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╣реИ);
- value_columns - рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдлрд╝реАрд▓реНрдб рдХреА рдПрдХ рд╕реВрдЪреА рдЬреЛ рдХрд┐ рдореЗрдорд╕реНрдХреИрд▓реНрдб рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА;
- unique_idx_name_on_key рдЗрдВрдбреЗрдХреНрд╕ рд╣реИ рдЬрд┐рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА key_columns рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред
рд╢реЗрд╖ рдХреНрд╖реЗрддреНрд░ рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВред
рд╣рдорд╛рд░реА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг innodb_memcache.containers рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
INSERT INTO innodb_memcache.containers SET name='auth', db_schema='test', db_table='auth', key_columns='email', value_columns='password|type', flags='0', cas_column='0', expire_time_column='0', unique_idx_name_on_key='PRIMARY';
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдирд╛рдо = 'рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░' рд╣рдорд╛рд░реА рд╕реНрд╡реАрдХреГрдд рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрд╕рд░реНрдЧ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЗрд╕реЗ рдЕрдХреНрд╕рд░ рдЯреЗрдмрд▓_рдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдж рдореЗрдВ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рдЕрдм TELNET рдореЗрдореЗрдХрдЯреЗрдб рдкреНрд▓рдЧрдЗрди рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ:
[21:26:22] maxm@localhost: ~> telnet memchached-mysql.dev 11211 Trying 127.0.0.1... Connected to memchached-mysql.dev. Escape character is '^]'. get @@auth.max@example.com END set @@auth.max@example.com 0 0 10 1234567|89 STORED get @@auth.max@example.com VALUE @@auth.max@example.com 0 10 1234567|89 END
рдкрд╣рд▓реЗ рд╣рдордиреЗ рдПрдХ GET рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛, рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдлрд┐рд░ рд╣рдордиреЗ SET рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдордиреЗ рдЗрд╕реЗ GET рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ред
GET рдиреЗ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рд▓реМрдЯрд╛ рджреА: 1234567 | 89 | рдпреЗ "рдкрд╛рд╕рд╡рд░реНрдб" рдФрд░ "рдЯрд╛рдЗрдк" рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ "|" рдкреНрд░рддреАрдХ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдлрд╝реАрд▓реНрдбреНрд╕ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рд▓реМрдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ innodb_memcache.containers.value_columns рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╢рд╛рдпрдж рдЖрдк рдЕрдм рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ: "рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдкреНрд░рддреАрдХ" | "" рдкрд╛рд╕рд╡рд░реНрдб "рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ?" рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред
SQL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╣ рдбреЗрдЯрд╛ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ:
MySQL [(none)]> select * from auth where email='max@example.com'; +-----------------+----------+------+ | email | password | type | +-----------------+----------+------+ | max@example.com | 1234567 | 89 | +-----------------+----------+------+ 1 row in set (0.00 sec)
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд╛рд▓рд┐рдХрд╛_рдж
рдЗрд╕ рддрд░рд╣ рдХреЗ рдСрдкрд░реЗрд╢рди рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рднреА рд╣реИ:
get @@auth VALUE @@auth 0 21 test/auth END get max@example.com VALUE max@example.com 0 10 1234567|99 END set ivan@example.com 0 0 10 qwerty|xxx STORED get ivan@example.com VALUE ivan@example.com 0 10 qwerty|xxx END
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, get@@ Cort рдХреЗ рд╕рд╛рде, рд╣рдо рдЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрдкрд╕рд░реНрдЧ table_id рдХреЛ рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рднреА рдмрд╛рдж рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЯреЗрдмрд▓_рдЖрдИрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм рддрдХ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдИ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВред рд╣рдо рдЖрдкрдХреЛ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдХреНрдпрд╛ рдкрд╛рдпрд╛ред
рдмрд╛рд░реАрдХрд┐рдпреЛрдВ
рдХреИрд╢рд┐рдВрдЧ innodb_memcache.containers рддрд╛рд▓рд┐рдХрд╛
рд╕реНтАНрдкрд╖реНтАНрдЯ рдХрд┐рдП рдЧрдП рдкреНтАНрд▓рдЧ рдЗрдирдмреЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдмрд╛рд░ innodb_memcache.containers рддрд╛рд▓рд┐рдХрд╛ рдкрдврд╝рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдХреЛрдИ рдЕрдЬреНрдЮрд╛рдд table_id рдореЗрдордХреЗрдЪреНрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрддрд╛ рд╣реИ, рддреЛ рдкреНрд▓рдЧрдЗрди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЗрд╕реЗ рдЦреЛрдЬрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдирдИ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (table_id), рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ table_id рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдореЗрдорд╕реНрдХреИрд▓реЗрдЯ рдХрд┐рдП рдЧрдП рдкреНрд▓рдЧрдЗрди рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
mysql> UNINSTALL PLUGIN daemon_memcached; mysql> INSTALL PLUGIN daemon_memcached soname "libmemcached.so";
рдЗрди рджреЛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмреАрдЪ, Memcached рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдореМрдЬреВрджрд╛ рдПрдХ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдЯреЗрдмрд▓_рдЖрдИрдбреА рдмрдирд╛рдирд╛ рдЕрдХреНрд╕рд░ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдереА рдХрд┐ рдкреНрд▓рдЧ-рдЗрди рдСрдкрд░реЗрд╢рди рдХреА рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди
рдЗрдиреЛрдлрд╝реАрдбреА рдореЗрдореЗрдХреИрдб рдкреНрд▓рдЧрд┐рди рдкреГрд╖реНрда рдХреЗ
рд▓рд┐рдП рдПрдХ рдореЗрдореЗрдХреИрдЪреНрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ
рдЕрдкрдирд╛рдиреЗ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддрд╛рд░реНрдХрд┐рдХ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИред
рдЭрдВрдбреЗ, рдХреИрд╕_рдХреВрд▓, expire_time_column
Memcached рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдирдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдЕрд╕рдВрдЧрдд рд╣реИред рдЗрд╕рдореЗрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдЙрджрд╛рд╣рд░рдг рдЙрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдпреЗ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред рдПрдХ рдЪрд┐рдВрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдФрд░ рдпреЗ рдХрдо рд╕реЗ рдХрдо рддреАрди INT рдлрд╝реАрд▓реНрдб рд╣реИрдВ)ред рд▓реЗрдХрд┐рди рдирд╣реАрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдРрд╕реЗ рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЖрдк рдРрд╕реЗ Memcached рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ CAS, рд╕рдорд╛рдкреНрддрд┐ рдпрд╛ рдзреНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
Innodb_memcache.containers рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ '0' рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рд░реЗрдЦрд╛ рдмрдирд╛рдПрдВ:
INSERT INTO innodb_memcache.containers SET name='auth', db_schema='test', db_table='auth', key_columns='email', value_columns='password|type', flags='0', cas_column='0', expire_time_column='0', unique_idx_name_on_key='PRIMARY';
рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ рдХрд┐ cas_column рдФрд░ expire_time_column рдореЗрдВ NULL рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк INSERT INTO innodb_memcache.containers рдкрд░ рдЕрдорд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП '0' рдХрд╛ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛, NULL рдЙрдирдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ memcache рдЙрдкрд╕рд░реНрдЧ рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░
рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдпрд╣ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд▓рдЧрдЗрди рдХреЗрд╡рд▓ рдкрд╛рда рдлрд╝реАрд▓реНрдб (CHAR, VARCHAR, BLOB) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ:
InnoDB рдореЗрдореЗрдХрдЯреЗрдб рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдореМрдЬреВрджрд╛ MySQL рд╕реНрдХреАрдорд╛ рдХреЛ рдЕрдкрдирд╛рдирд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ SQL рд╕реЗ рдЗрди рдирдВрдмрд░ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╡реНрдпреВ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде VARCHAR рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ INTEGER рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ :
CREATE VIEW numbers AS SELECT c1 KEY, CAST(c2 AS UNSIGNED INTEGER) val FROM demo_test WHERE c2 BETWEEN '0' and '9999999999';
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдпрд╣ рдЕрднреА рднреА рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм рддрдХ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрдкрд╛рджрди рдЕрдиреБрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд▓рдЧрдЗрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
CREATE TABLE `numbers` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `counter` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB INSERT INTO innodb_memcache.containers SET name='numbers', db_schema='test', db_table='numbers', key_columns='id', value_columns='counter', flags='0', cas_column='0',expire_time_column='0',unique_idx_name_on_key='PRIMARY';
рдЙрд╕рдХреЗ рдмрд╛рдж, Memcached рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ:
get @@numbers.1 END set @@numbers.1 0 0 2 12 STORED get @@numbers.1 VALUE @@numbers.1 0 2 12 END
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдореЗрдордХрд╛рдЯреЗрдб рдкреНрд▓рдЧрдЗрди рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдЙрд╕ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдЗрдиреЛрдмреАрдбреА рдореЗрдВ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк / рдбреЗрдЯрд╛рдЗрдо / рдлреНрд▓реЛрдЯ / рджрд╢рдорд▓рд╡ / рдЬреЗрдПрд╕рдПрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ SQL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВред
Multiget
рдкреНрд░рдЪрд▓рд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдХрдИ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
get @@numbers.2 @@numbers.1 VALUE @@numbers.2 0 2 12 VALUE @@numbers.1 0 2 13 END
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдорд▓реНрдЯреАрдЧреЗрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ table_id рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
get @@auth.ivan@example.com @@numbers.2 VALUE @@auth.ivan@example.com 0 10 qwerty|xxx END
рдЗрд╕ рдмрд┐рдВрджреБ рдХрд╛ рд╡рд░реНрдгрди рдпрд╣рд╛рдБ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://dev.mysql.com/doc/refman/8.0/en/innodb-memcached-multiple-get-range-query.html ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдорд▓реНрдЯреАрдЧреЗрдЯ рдореЗрдВ рдЖрдк рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП table_id рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдЕрдиреНрдп рд╕рднреА рдЪрд╛рдмрд┐рдпрд╛рдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ table_id (рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдЙрджрд╛рд╣рд░рдг) рд╕реЗ рд▓реА рдЧрдИ рд╣реИрдВ:
get @@aaa.AA BB VALUE @@aaa.AA 8 12 HELLO, HELLO VALUE BB 10 16 GOODBYE, GOODBYE END
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджреВрд╕рд░реА рдХреБрдВрдЬреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ table_id рд╕реЗ рд▓реА рдЧрдИ рд╣реИред рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдмрд▓_рдЖрдИрдбреА рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрдВрдЬреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрд╣рд▓реА рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рдЕрд▓рдЧ рдЯреЗрдмрд▓_рдЖрдИрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдХреБрдВрдЬреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реА рд╕рдВрднрд╡ рд╣реИред
рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдорд▓реНрдЯреАрдЧреЗрдЯ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдРрд╕рд╛ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрддреНрдкрд╛рджрди рдХреЛрдб рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рддрд░реНрдХ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ: рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдирд╛, рдЧрд▓рддреА рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдпрджрд┐ рд╣реИрдВрдбрд▓рд░рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рд╡рд╣рд╛рдВ рднреА, рдорд▓реНрдЯреАрдЧреЗрдЯ рдиреЗ рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рддрд┐рдмрдВрдз рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд▓рдЧ рд░рд╣рд╛ рдерд╛: рдЧреНрд░рд╛рд╣рдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рд╕реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рд╡рд┐рднрд┐рдиреНрди рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдХреБрдВрдЬрд┐рдпреЛрдВ рдкрд░ рдорд▓реНрдЯреАрдЧреЗрдЯ рдореЗрдореНрдХреЗрдб рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдЕрднреНрдпрд╛рд╕ рд╣реИред рдФрд░ рдЖрдк MySQL рдореЗрдореНрдХреЗрдЪреНрдб рдкреНрд▓рдЧрдЗрди рд╕реЗ рднреА рдпрд╣реА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдирд╣реАрдВ :(
INCR, DEL
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА GET / SET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рд╣реИрдВред INCR рдФрд░ DEL рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ table_id рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:
DELETE @@numbers.1 ERROR get @@numbers VALUE @@numbers 0 24 test/numbers END delete 1 DELETED
рдЭрд┐рд▓реНрд▓реАрджрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реАрдорд╛рдПрдБ
рдореЗрдореНрдХреЗрдб рдореЗрдВ рдПрдХ рдкрд╛рда рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ, рдЬреЛ рдХреБрдЫ рд╕реАрдорд╛рдПрдВ рд▓рдЧрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрдореНрдХреЗрдб рдХреАрдЬрд╝ рдореЗрдВ рд╡реНрд╣рд╛рдЗрдЯ рд╕реНрдкреЗрд╕ рдХреИрд░реЗрдХреНрдЯрд░ (рд╕реНрдкреЗрд╕, рд▓рд╛рдЗрди рдлреАрдб) рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ:
CREATE TABLE `auth` ( `email` varchar(96) NOT NULL, `password` varchar(64) NOT NULL, `type` varchar(32) NOT NULL DEFAULT '', PRIMARY KEY (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ "рдИрдореЗрд▓" рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдРрд╕реЗ рдЕрдХреНрд╖рд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрдо рдХреА рдЧрдИ рдЪрд╛рдмрд┐рдпрд╛рдВ 250 рдмрд╛рдЗрдЯреНрд╕ (рдмрд╛рдЗрдЯреНрд╕, рди рдХрд┐ рдЕрдХреНрд╖рд░) рд╕реЗ рдХрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
"CLIENT_ERROR bad command line format"
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореЗрдореЗрдХреИрдЪреНрдб рдкреНрд▓рдЧрдЗрди рдореЗрдореИрдХреНрдЯреЗрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рдЕрдкрдирд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ "|" рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВред рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддреАрдХ рдЖрдкрдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рднрд╛рдЬрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреВрд░реЗ MySQL рд╕рд░реНрд╡рд░ рдкрд░ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдВрдЧреАред
рдлрд╝реАрд▓реНрдб рд╕реАрдорд╛рдВрдХрдХ value_columns
рдпрджрд┐ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореЗрдореЛрд░реИрдХреНрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдИ рдХреЙрд▓рдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
get @@auth.max@example.com VALUE @@auth.max@example.com 0 10 1234567|89 END
рддрдм рд╕реНрддрдВрдн рдорд╛рди рдорд╛рдирдХ рд╡рд┐рднрд╛рдЬрдХ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ "" | рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: "рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░рд┐рддреНрд░" | "рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкрд╣рд▓реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реИ?" рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрдореЗрдХреИрдЪреНрдб рдкреНрд▓рдЧрдЗрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛ рджреЗрдЧрд╛, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реИ: 1234 | 567 | 89 | рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдордЭрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рдХреНрд╖реЗрддреНрд░ рдХрд╣рд╛рдБ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╕рд╣реА рд╡рд┐рднрд╛рдЬрдХ рдХреЛ рддреБрд░рдВрдд рдЪреБрдирдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдФрд░ рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╕рднреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЪрд░рд┐рддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдореЗрдорд╕реНрдХреИрд▓реНрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рд╕рд╛рд░рд╛рдВрд╢
рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореЗрдореЗрдХреИрдЪреНрдб рдкреНрд▓рдЧрдЗрди рдЦрд░рд╛рдм рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛: рдПрдХ рдореЗрдЬ рдХреЗ рд╕рд╛рде рдПрдХ MySQL рд╕рд░реНрд╡рд░ рдЬрд┐рд╕реЗ рдореЗрдорд╕реНрдХреИрд▓реНрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЯреЗрдмрд▓_рдЖрдИрдбреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдЧреНрд░рд╛рд╣рдХ рдореЗрдордХреИрдЪреНрдб рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд╛рдпреА рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ table_id рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж, рдРрд╕реА рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдирд┐рд░реНрджреЛрд╖ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕рд╕реЗ рджреВрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдЕрд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
рдЖрдк рдХреБрдЫ рдкреНрд▓рдЧрдЗрди рдкреНрд░рджрд░реНрд╢рди рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рдЕрддреНрдпрдзрд┐рдХ рднрд░реА рд╣реБрдИ рдЬрдЧрд╣реЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓рд┐рдпрд╛ рд╣реИред рд╣рдордиреЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдХреБрдЫ рд╣реА рдирд╣реАрдВ рднрд░реА рд╣реБрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣реИрдВрдбрд▓рд░рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рдорд╛рди рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдИрдорд╛рдирджрд╛рд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдкреНрд▓рдЧрдЗрди рдПрдХ рдРрд╕рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЧрд▓рддреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрднреА рддрдХ рдмрд▓реНрдХ рдореЗрдВ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред
рд╣рдордиреЗ MySQL рдмрдЧ рдЯреНрд░реИрдХрд░ рдореЗрдВ рдХреБрдЫ рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдз рдХрд┐рдП рд╣реИрдВ:
https://bugs.mysql.com/bug.php?id=95091https://bugs.mysql.com/bug.php?id=95092https://bugs.mysql.com/bug.php?id=95093https://bugs.mysql.com/bug.php?id=95094рдЪрд▓реЛ рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдореЗрдорд╕реНрдХреИрд▓реНрдб рдкреНрд▓рдЧрдЗрди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рдж рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧреАред