рд╣реИрд▓реЛ, рд╣реЗрдмреНрд░реИрдЪреИрдЯреЗрд▓!
InnoDB рдкреВрд░реНрдг-рдкрд╛рда рдбреЗрдЯрд╛ рдЦрдирди рдХрдИ MySQL / InnoDB рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╕рд┐рд░рджрд░реНрдж рд╣реИред рдЬреЛ рд▓реЛрдЧ рдЕрдк рдЯреВ рдбреЗрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ред MyISAM рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдХ рдкреВрд░реНрдг-рдкрд╛рда рдбреЗрдЯрд╛ рдЦреЛрдЬ рд╣реЛрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реНрд╡рдпрдВ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╕реАрдорд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореМрд▓рд┐рдХ рд╣реЛрддреА рд╣реИрдВред рдЕрдзрд┐рдХ рдЙрдиреНрдирдд InnoDB рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЧрд░реАрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ MyISAM рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рдпрд╛ InnoDB рдореЗрдВ рдЦреЛрдЬ рдХреА рдХрдореА рдХреЗ рд╕рд╛рде рд░рдЦрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЬрд╛рджреВ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рдпрдорд┐рдд рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдиреЛрдмреАрдбреА рдореЗрдВ рдкреВрд░реНрдг-рдЦреЛрдЬ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреНрдпрд╛ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреА рдЧрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 10,000 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рддрд╛рд▓рд┐рдХрд╛ рд▓реЗрдВред
рдмрдирд╛рдПрдБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ ()
рдЖрдИрдбреА INT ( 11 ) рдирд╣реАрдВ рдкреВрд░реНрдг AUTO_INCREMENT ,
рд▓реЙрдЧ рдЗрди VARCHAR ( 255 ) DEFAULT NULL ,
` рдкрд╛рд╕рд╡рд░реНрдб` рд╡рд╛рд░рдЪреЗрдпрд░ ( 255 ) рдбрд┐рдлреЙрд▓реНрдЯ рдирд╛рд▓ ,
VARCHAR ( 255 ) DEFAULT NULL рдХрд╛ рдирд╛рдо
рдЙрдкрдирд╛рдо VARCHAR ( 255 ) DEFAULT NULL ,
рдИрдореЗрд▓ VARCHAR ( 255 ) рдкреВрд░реНрдг рдирд╣реАрдВ ,
рджреЗрд╢ рд╡рд░рдЪреНрд░ ( 255 ) DEFAULT NULL ,
рд╢рд╣рд░ рд╡рд░рдЪреЗрд░ ( 255 ) рдбреЗрдлреЙрд▓реНрдЯ рдирд╛рд▓ ,
рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА ( рдЖрдИрдбреА )
)
рдЗрдВрдЬрди = INNODB
рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рд╣рдо рд╕рд╛рдЗрдЯ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рдЗрдЯ рдкрд░ рд╕реНрд╡рдпрдВ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦреЛрдЬ рдлрд╝реЙрд░реНрдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк "рдЯреЙрд▓реНрд╕реНрдЯреЙрдп рдпрд╛рд╕реНрдирд╛рдпрд╛ рдкреЙрд▓реНрдпреВрд╢рди" рдлреЙрд░реНрдо рдХреА рдПрдХ рдордирдорд╛рдиреА рдХреНрд╡реЗрд░реА рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЦреЛрдЬ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрдВ рдлрд╝реАрд▓реНрдб
рд▓реЙрдЧрд┐рди ,
рдирд╛рдо ,
рдЙрдкрдирд╛рдо ,
рд╢рд╣рд░ ,
рджреЗрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдпрд╛ рддреЛ рдПрдХ рд╢рдмреНрдж (рдирд╛рдо рдпрд╛ рд╢рд╣рд░) рдпрд╛ рдПрдХ рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рд╢рдмреНрджреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рд╕рд╛рде рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреЗ рдЗрд╕ рд╕реЗрдЯ рдХреЛ рдЦреЛрдЬрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрдиреЛрдмреАрдбреА рдореЗрдВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
InnoDB рдореЗрдВ рдкреВрд░реНрдг-рдкрд╛рда рдбреЗрдЯрд╛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рддрд░реАрдХреЗ рд╣реИрдВ:
- MyISAM рдореЗрдВ рдорд┐рд░рд░ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
- рдХреИрд╢реНрдб рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде MyISAM рдореЗрдВ рдПрдХ рдорд┐рд░рд░ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
- MyISAM рдореЗрдВ рдПрдХ рдХреАрд╡рд░реНрдб рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
- InnoDB рдореЗрдВ рдХреНрд╡реЗрд░реА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ рдкреНрд░рддреНрдпрдХреНрд╖ рдЦреЛрдЬ
- рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЖрдЗрдП рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
MyISAM рдореЗрдВ рдорд┐рд░рд░ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдкрд╣рд▓рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рддрд░реАрдХрд╛ MyISAM рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдирд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, MyISAM рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ (
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ) рдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЯреНрд░рд┐рдЧрд░ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдирдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рдлрд╝реАрд▓реНрдб
рд▓реЙрдЧрд┐рди ,
рдирд╛рдо ,
рдЙрдкрдирд╛рдо ,
рд╢рд╣рд░ ,
рджреЗрд╢ рдЬреЛрдбрд╝реЗрдВ ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдПрдХ "рджрд░реНрдкрдг" рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА 5 рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рде FULLTEXT рд╕реВрдЪрдХрд╛рдВрдХ рдЬреЛрдбрд╝реЗрдВ:
рд╕реГрдЬрди рд╕рдВрдмрдВрдзреА рдЦреЛрдЬ (
рдЖрдИрдбреА INT ( 11 ) DEFAULT NULL ,
рд▓реЙрдЧ рдЗрди VARCHAR ( 255 ) DEFAULT NULL ,
VARCHAR ( 255 ) DEFAULT NULL рдХрд╛ рдирд╛рдо
рдЙрдкрдирд╛рдо VARCHAR ( 255 ) DEFAULT NULL ,
рджреЗрд╢ рд╡рд░рдЪреНрд░ ( 255 ) DEFAULT NULL ,
рд╢рд╣рд░ рд╡рд░рдЪреЗрд░ ( 255 ) рдбреЗрдлреЙрд▓реНрдЯ рдирд╛рд▓ ,
FULLTEXT INDEX IX_search ( рд╢рд╣рд░ , рджреЗрд╢ , рд▓реЙрдЧрд┐рди , рдирд╛рдо , рдЙрдкрдирд╛рдо )
)
рдЗрдВрдЬрди = MYISAM
рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рджрд░реНрдкрдг рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рд▓рд┐рдЦрдиреЗ, рдмрджрд▓рдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдЧрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЯреНрд░рд┐рдЧрд░:
рдмрдирд╛рдПрдБ
TRIGGER `рдбрд╛рд▓реЗрдВ`
INSERT рдХреЗ рдмрд╛рдж
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░
рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП
рд╢реБрд░реВ
INSERT INTO рд╕рд░реНрдЪ ( `id` , ` login` , `name` , ` surname` , `country` , ` city` ) VALUES (
рдирдИред `Id`,
рдирдИред `рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ ,
рдирдИред `рдирд╛рдо` ,
рдирдИред `рдЙрдкрдирд╛рдо ' ,
рдирдИред `рджреЗрд╢` ,
рдирдИред `city`
) ;
рдЕрдВрдд
рдЯреНрд░рд┐рдЧрд░ рдмрджрд▓реЗрдВ:
рдмрдирд╛рдПрдБ
TRIGGER `рдЕрдкрдбреЗрдЯ`
рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░
рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП
рд╢реБрд░реВ
DELETE рд╕реЗ `рдЦреЛрдЬ` рдХрд╣рд╛рдБ` рдЖрдИрдбреА` = рдирдпрд╛ ред `рдЖрдИрдбреА` ;
INSERT INTO `рдЦреЛрдЬ` ( ` рдЖрдИрдбреА` , `рд▓реЙрдЧрд┐рди` , ` рдирд╛рдо` , `рдЙрдкрдирд╛рдо` , ` рджреЗрд╢` , `рд╢рд╣рд░` ) VALUES (
рдирдИред `Id`,
рдирдИред `рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ ,
рдирдИред `рдирд╛рдо` ,
рдирдИред `рдЙрдкрдирд╛рдо ' ,
рдирдИред `рджреЗрд╢` ,
рдирдИред `city`
) ;
рдЕрдВрдд
рдФрд░ рдПрдХ рд╕рд░рд▓ рд╣рдЯрд╛рдиреЗ рдЯреНрд░рд┐рдЧрд░:
рдмрдирд╛рдПрдБ
TRIGGER `рд╣рдЯрд╛рдУ`
DELETE рдХреЗ рдмрд╛рдж
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░
рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП
рд╢реБрд░реВ
DELETE рд╕реЗ `рдЦреЛрдЬ` рдХрд╣рд╛рдБ` рдЖрдИрдбреА` = рдкреБрд░рд╛рдиреЗ ред `рдЖрдИрдбреА` ;
рдЕрдВрдд
рдЦреЛрдЬ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИ:
'Users` рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ ред * FROM` рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛`
INNER JOIN `search`
`рдЦреЛрдЬ` рдкрд░ ред `рдЖрдИрдбреА` = ` рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛` ред `id`
рдХрд╣рд╛рдВ
MATCH ( `рдЦреЛрдЬ` ред рд╢рд╣рд░ , ` рдЦреЛрдЬ` рджреЗрд╢ , `рдЦреЛрдЬ` ред рд▓реЙрдЧрд┐рди , ` рдЦреЛрдЬ` ред рдирд╛рдо , `рдЦреЛрдЬ` ред рдЙрдкрдирд╛рдо ) AGAINST ( 'рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдЯреБрдкрд┐рди рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ' BOOLEAN MODE рдореЗрдВ ) : 0
ORDER BY MATCH ( `search` ред City , ` search` ред рджреЗрд╢ , `рдЦреЛрдЬ` ред Login , ` search` ред Name , `search` ред Surname ) AGAINST ( 'рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдЯреБрдкрд┐рди рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ' BOOLEANEE DESC ) DESCред
рдпрд╣рд╛рдВ, рдбреЗрдЯрд╛ рдХреЛ
рдЦреЛрдЬ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд╣рдореЗрдВ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВред
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдХреНрд░рдорд┐рдд рдЬреЛрдбрд╝рдХрд░ рдЦреЛрдЬ рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди рд╣реИ рдФрд░ рдирдП рдЦреЛрдЬ рд╕рдВрдпреЛрдЬрдиреЛрдВ (рджреЗрд╢ + рд╢рд╣рд░ рдпрд╛ рд▓реЙрдЧрд┐рди + рдирд╛рдо + рдЙрдкрдирд╛рдо) рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЦреЛрдЬ рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдирдП рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдиреБрдХрд╕рд╛рди (рд╕рд╛рде рд╣реА "рджрд░реНрдкрдг" рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рднреА рддрд░реАрдХреЗ) рдбреЗрдЯрд╛ рдХреЗ рдЕрддреНрдпрдзрд┐рдХ рднрдВрдбрд╛рд░рдг рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдЯреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред
рдХреИрд╢реНрдб рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде MyISAM рдореЗрдВ рдПрдХ рдорд┐рд░рд░ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдбреЗрдЯрд╛ рдорд┐рд░рд░ рдмрдирд╛рдирд╛ рднреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣рд╛рдВ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ, рдЦреЛрдЬ рдХреЛ рдЦреЗрддреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рддреБрд░рдВрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдПрдХ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдПрдХрд▓ рдбреЗрдЯрд╛рд╕реЗрдЯ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛ред рджреЛ рдлрд╝реАрд▓реНрдб
рдЖрдИрдбреА рдФрд░
рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ
рдЦреЛрдЬ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВред
Id - рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ (
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ ) рдХреА
рдЖрдИрдбреА рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧреА,
рдкрд╛рда рд╣рдорд╛рд░рд╛ "рдХреИрд╢реНрдб" рдбреЗрдЯрд╛ рд╣реИред
рд╕реГрдЬрди рд╕рдВрдмрдВрдзреА рдЦреЛрдЬ (
рдЖрдИрдбреА INT ( 11 ) DEFAULT NULL ,
`рдкрд╛рда` рдкрд╛рда рджреЛрд╖ рд╕рдорд╛рдкреНрдд ,
рдкреВрд░реНрдг INDEX IX_search_text ( `рдкрд╛рда` )
)
рдЗрдВрдЬрди = MYISAM
рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдЬреЛрдбрд╝рдирд╛:
рдмрдирд╛рдПрдБ
TRIGGER `рдбрд╛рд▓реЗрдВ`
INSERT рдХреЗ рдмрд╛рдж
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░
рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП
рд╢реБрд░реВ
INSERT INTO рд╕рд░реНрдЪ ( `id` , ` text` ) VALUES ( NEW ред `Id` )
рд▓реЛрдЕрд░ (
CONCAT_WS ( '' ,
рдирдИред `рдирд╛рдо` ,
рдирдИред `рдЙрдкрдирд╛рдо ' ,
рдирдИред `рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ ,
рдирдИред `рджреЗрд╢` ,
рдирдИред `city`
)
)
) ;
рдЕрдВрдд
рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП:
рдмрдирд╛рдПрдБ
TRIGGER `рдЕрдкрдбреЗрдЯ`
рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░
рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП
рд╢реБрд░реВ
рдЦреЛрдЬ рд╕реЗ рдХрд╣рд╛рдБ рд╕реЗ `рдЖрдИрдбреА` = рдирдпрд╛ ред `рдЖрдИрдбреА` ;
INSERT INTO рд╕рд░реНрдЪ ( `id` , ` text` ) VALUES ( NEW ред `Id` )
рд▓реЛрдЕрд░ (
CONCAT_WS ( '' ,
рдирдИред `рдирд╛рдо` ,
рдирдИред `рдЙрдкрдирд╛рдо ' ,
рдирдИред `рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ ,
рдирдИред `рджреЗрд╢` ,
рдирдИред `city`
)
)
) ;
END рдмрдирд╛рдПрдВ
рд╣рдЯрд╛рдиреЗ:
TRIGGER `рд╣рдЯрд╛рдУ`
DELETE рдХреЗ рдмрд╛рдж
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░
рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП
рд╢реБрд░реВ
DELETE FROM рд╕рд░реНрдЪ рдХрд╣рд╛рдВ рд╕реЗ рдХрд░реЗрдВ 'id` = OLD `рдЖрдИрдбреА` ;
рдЕрдВрдд
рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:
'Users` рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ ред * FROM` рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛`
INNER JOIN `search`
`рдЦреЛрдЬ` рдкрд░ ред `рдЖрдИрдбреА` = ` рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛` ред `id`
рдХрд╣рд╛рдВ
MATCH ( `search`.` рдЯреЗрдХреНрд╕реНрдЯ` ) AGAINST ( 'рд╡реНрд▓рд╛рджрд┐рдореАрд░ рддреБрдкрд┐рди рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ' BOOLEAN MODE ' рдореЗрдВ ) 0
MATCH рджреНрд╡рд╛рд░рд╛ рдЖрджреЗрд╢ ( `рдЦреЛрдЬ` 'рдкрд╛рда ' ) AGAINST ( 'рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдЯреБрдкрд┐рди рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ' BOOLEAN MODE ) DESC рдореЗрдВ
рдпрд╣ рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд▓рдЪреАрд▓реА рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдмрд╛рдж рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ, рдпрд╣ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдЧрддрд┐ рдореЗрдВ рдЬреАрддрддрд╛ рд╣реИред
MyISAM рдореЗрдВ рдПрдХ рдХреАрд╡рд░реНрдб рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рддреАрд╕рд░реА рд╡рд┐рдзрд┐ "рдХреАрд╡рд░реНрдб" - рдЦреЛрдЬ рдЯреИрдЧ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдлрд╝реАрд▓реНрдб рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝реАрд▓реНрдб
(id=2144; login= leo; name=;surname=;city=' ';country=;email=leo@tolstoy.ru;password=;)
рдХреАрд╡рд░реНрдб рд╣реЛрдВрдЧреЗ
(┬лleo┬╗; ┬л┬╗; ┬л┬╗; ┬л ┬╗; ┬л┬╗)
ред рд╣рдо рдЗрди рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ MyISAM рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рджреЛ рдлрд╝реАрд▓реНрдб
рдЖрдИрдбреА рдФрд░
рдЯреЗрдХреНрд╕реНрдЯ рд╣реЛрдВрдЧреЗ ред рдЖрдИрдбреА рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ (
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ ) рдХреА рдЖрдИрдбреА рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдФрд░
рдЯреЗрдХреНрд╕реНрдЯ рдПрдХ рдлрд╝реАрд▓реНрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреАрд╡рд░реНрдб рдЯреИрдЧ рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдирдИ
рдЦреЛрдЬ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 5 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреАред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЯреИрдЧ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдорд┐рд▓реАред
рд╕реГрдЬрди рд╕рдВрдмрдВрдзреА рдЦреЛрдЬ (
рдЖрдИрдбреА INT ( 11 ) DEFAULT NULL ,
`рдкрд╛рда` рд╡рд░реНрдг ( 255 ) рджреЛрд╖ рдкреВрд░реНрдг
рдкреВрд░реНрдг INDEX IX_search_text ( `рдкрд╛рда` )
)
рдЗрдВрдЬрди = MYISAM
рдбреЗрдЯрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рднреА рдЯреНрд░рд┐рдЧрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдирд┐рд░реНрдорд╛рдг:
рдмрдирд╛рдПрдБ
TRIGGER `рдбрд╛рд▓реЗрдВ`
INSERT рдХреЗ рдмрд╛рдж
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░
рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП
рд╢реБрд░реВ
INSERT INTO рд╕рд░реНрдЪ ( `id` , ` text` ) VALUES
(( `` `Id` , NEW.` Login` ) ,
(( `` `Id` , NEW.` Name` ) ,
(( `` `рдЖрдИрдбреА` , рдирдпрд╛.` рдЙрдкрдирд╛рдо` ) ,
(( `` `Id` , NEW.` рджреЗрд╢` ) ,
(( `` `рдЖрдИрдбреА` , рдиреНрдпреВ.` рд╕рд┐рдЯреА` ) ;
рдЕрдВрдд
рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП:
рдмрдирд╛рдПрдБ
TRIGGER `рдЕрдкрдбреЗрдЯ`
рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░
рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП
рд╢реБрд░реВ
рдЦреЛрдЬ рд╕реЗ рдХрд╣рд╛рдБ рд╕реЗ `рдЖрдИрдбреА` = рдирдпрд╛ ред `рдЖрдИрдбреА` ;
INSERT INTO рд╕рд░реНрдЪ ( `id` , ` text` ) VALUES
(( `` `Id` , NEW.` Login` ) ,
(( `` `Id` , NEW.` Name` ) ,
(( `` `рдЖрдИрдбреА` , рдирдпрд╛.` рдЙрдкрдирд╛рдо` ) ,
(( `` `Id` , NEW.` рджреЗрд╢` ) ,
(( `` `рдЖрдИрдбреА` , рдиреНрдпреВ.` рд╕рд┐рдЯреА` ) ;
рдЕрдВрдд
рд╣рдЯрд╛рдиреЗ:
рдмрдирд╛рдПрдБ
TRIGGER `рд╣рдЯрд╛рдУ`
DELETE рдХреЗ рдмрд╛рдж
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░
рд╣рд░ рдПрдХ рдХреЗ рд▓рд┐рдП
рд╢реБрд░реВ
DELETE FROM рд╕рд░реНрдЪ рдХрд╣рд╛рдВ рд╕реЗ рдХрд░реЗрдВ 'id` = OLD `рдЖрдИрдбреА` ;
рдЕрдВрдд
рдЦреЛрдЬ рдХреНрд╡реЗрд░реА:
'Users` рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ ред * FROM` рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛`
INNER JOIN `search`
`рдЦреЛрдЬ` рдкрд░ ред `рдЖрдИрдбреА` = ` рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛` ред `id`
рдХрд╣рд╛рдВ
MATCH ( `search`.` рдЯреЗрдХреНрд╕реНрдЯ` ) AGAINST ( 'рд╡реНрд▓рд╛рджрд┐рдореАрд░ рддреБрдкрд┐рди рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ' BOOLEAN MODE ' рдореЗрдВ ) 0
рдЧреНрд░реБрдк рдмрд╛рдп `рд╕рд░реНрдЪ` ред `id`
COUNT ( * ) DESDER рджреНрд╡рд╛рд░рд╛ рдЖрджреЗрд╢
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдкрд╣рд▓реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ MyISAM рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдЦреЛрдЬ рдЗрдВрдЬрди рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рдереА, рддреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЦреЛрдЬ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╡реЗ рдЯреИрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реБрдП рдЬреЛ рдЕрдиреБрд░реЛрдз рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред рдФрд░ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдЯреИрдЧ рд╣реЛрддреЗ рд╣реИрдВ, рд╡реЗ рдирдореВрдирд╛ рдореЗрдВ рдЙрдЪреНрдЪ рд╣реЛрддреЗ рд╣реИрдВред
рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рдЦрд╛рдореА рд╣реИ: рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЯреИрдЧ рдХреЗ рд╕рд╛рде, рдХрдИ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЫрдВрдЯрд╛рдИ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╣рдореЗрд╢рд╛ рд╕рдЪ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ рдХреНрд╖рдорддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо
MATCH AGAINST
рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдпреЛрдЧ рдХреЛ
ORDER BY
рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрд░реЛрдХреНрдд рджреЛрд╖ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рджреВрд╕рд░реЗ, рд╣рдо рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡рдЬрди рдЯреИрдЧ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рдЬрди рдХреНрд╖реЗрддреНрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рдЬрди рдХрд╛ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдорд╣рддреНрд╡ (рд╡рдЬрди) рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЫрдБрдЯрд╛рдИ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рдЦреЛрдЬ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИред
InnoDB рдореЗрдВ рдХреНрд╡реЗрд░реА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ рдкреНрд░рддреНрдпрдХреНрд╖ рдЦреЛрдЬ
рдЪреМрдерд╛ рддрд░реАрдХрд╛ рдХрдареЛрд░ рд╣реИ рдФрд░ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ MyISAM рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреЗрдмрд▓ рдФрд░ рдЯреНрд░рд┐рдЧрд░ рднреА рдирд╣реАрдВ рд╣реИред рд╣рдо рдЕрднреА рдореМрдЬреВрджрд╛ рддрд╛рд▓рд┐рдХрд╛ рдЦреЛрдЬреЗрдВрдЧреЗред рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдЙрди рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдЦреЛрдЬ рдХреА рдЬрд╛рдПрдЧреАред
рдмрдирд╛рдПрдБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ ()
рдЖрдИрдбреА INT ( 11 ) рдкреВрд░реНрдг рдирд╣реАрдВ ,
рд▓реЙрдЧ рдЗрди VARCHAR ( 255 ) DEFAULT NULL ,
` рдкрд╛рд╕рд╡рд░реНрдб` рд╡рд╛рд░рдЪреЗрдпрд░ ( 255 ) рдбрд┐рдлреЙрд▓реНрдЯ рдирд╛рд▓ ,
VARCHAR ( 255 ) DEFAULT NULL рдХрд╛ рдирд╛рдо
рдЙрдкрдирд╛рдо VARCHAR ( 255 ) DEFAULT NULL ,
рдИрдореЗрд▓ VARCHAR ( 255 ) рдкреВрд░реНрдг рдирд╣реАрдВ ,
рджреЗрд╢ рд╡рд░рдЪреНрд░ ( 255 ) DEFAULT NULL ,
рд╢рд╣рд░ рд╡рд░рдЪреЗрд░ ( 255 ) рдбреЗрдлреЙрд▓реНрдЯ рдирд╛рд▓ ,
рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА ( рдЖрдИрдбреА ) ,
INDEX рд╢рд╣рд░ ( рд╢рд╣рд░ ) ,
INDEX рджреЗрд╢ ( рджреЗрд╢ ) ,
INDEX рдИрдореЗрд▓ ( рдИрдореЗрд▓ ) ,
INDEX рд▓реЙрдЧрд┐рди ( рд▓реЙрдЧрд┐рди ) ,
INDEX рдирд╛рдо ( рдирд╛рдо ) ,
INDEX рдкрд╛рд╕рд╡рд░реНрдб ( рдкрд╛рд╕рд╡рд░реНрдб ) ,
INDEX рдЙрдкрдирд╛рдо ( рдЙрдкрдирд╛рдо )
)
рдЗрдВрдЬрди = INNODB
InnoDB рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ LIKE рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкреНрд░рднрд╛рд╡реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдХреЛ рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдХрдИ рд╢рдмреНрджреЛрдВ рд╕реЗ рдпреБрдХреНрдд рдкреНрд░рд╢реНрди рдмрд┐рдирд╛ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░рд╣реЗрдВрдЧреЗред рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреНрд╡реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
рдмрдирд╛рдПрдБ
рд╕рдорд╛рд░реЛрд╣ рдЦреЛрдЬ ( str VARCHAR ( 255 ) )
рд░рд┐рдЯрд░реНрдиреНрд╕ рд╡реЗрд░рдЪрд░ ( 255 ) CHARSET cp1251
рд╢реБрд░реВ
DECLARE рдЖрдЙрдЯрдкреБрдЯ VARCHAR ( 255 ) DEFAULT '' ;
DECLARE temp_str VARCHAR ( 255 ) ;
DECLARE first_part VARCHAR ( 255 ) DEFAULT "CONCAT_WS ('',` name`, `surname`,` login`, `country`,` city`) LIKE '% " ;
DECLARE last_part VARCHAR ( 255 ) DEFAULT "% '" ;
LENGTH ( str ) ! = 0 рдбреАрдУ
SET temp_str = SUBSTRING_INDEX ( str , '' , 1 ) ;
рдЗрдл рдЯреЗрдореНрдкрд░_рд╕реНрдЯреНрд░ = рд╕реНрдЯреНрд░реИрдЯ
рддрдм
рд╕реЗрдЯ рд╕реНрдЯреНрд░реЗрдЯ = '' ;
рд╡рд░рдирд╛
SET str = SUBSTRING ( str , LENGTH ( temp_str ) + 2 ) ;
END IF ;
рдЕрдЧрд░ рдЙрддреНрдкрд╛рджрди! = ''
рддрдм
рд╕реЗрдЯ рдЖрдЙрдЯрдкреБрдЯ = CONCAT ( рдЖрдЙрдЯрдкреБрдЯ , 'OR' ) ;
END IF ;
рд╕реЗрдЯ рдЖрдЙрдЯрдкреБрдЯ = CONCAT ( рдЖрдЙрдЯрдкреБрдЯ , first_part , temp_str , last_part ) ;
END WHILE;
RETURN рдЖрдЙрдЯрдкреБрдЯ;
рдЕрдВрдд
рдлрд╝рдВрдХреНрд╢рди рдЙрддреНрдкрдиреНрди рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
SET @ WHERE = CONCAT ( 'SELECT * FROM` рдпреВрдЬрд░реНрд╕ WHERE' , рд╕рд░реНрдЪ ( 'рд╣рдмрд░рд╛ рдЦрд╝рдмрд░реЛрд╡рд┐рдЪ' ) ) ;
PREPARE рдиреЗ @ WHROM рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛;
рддреИрдпрд╛рд░ рддреИрдпрд╛рд░;
рдЖрдк рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╡реЗ рдареЛрд╕ рд╕реБрд╡рд┐рдзрд╛ рджреЗрдВрдЧреЗред
рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдХрдИ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдордВрдЪ
рд╕реНрдлрд┐рдВрдХреНрд╕ рдФрд░
рдЕрдкрд╛рдЪреЗ рд▓реНрдпреВрд╕рд┐рди рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ (рдЬреИрд╕реЗ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ) рдХреЗ рд╕рд╛рде рдЕрд░реНрдерд╣реАрди рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдкреНрд░рддрд┐рдмрдВрдз (рд╣реЛрд╕реНрдЯрд░, рджреБрд╖реНрдЯ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ, рдХреБрдЯрд┐рд▓ рд╣рд╛рде, рдЖрджрд┐) рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИред
рддреБрд▓рдирд╛
рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдХреЗ рджрд┐рдЦрд╛рдП рдЧрдП рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ (рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдПред рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓рддреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ 50 рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрд░реНрдпреБрдХреНрдд рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХреА рдФрд╕рдд рдЧрддрд┐ рдХреА рдирд┐рд╖реНрдкрдХреНрд╖ рд░реВрдк рд╕реЗ рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ред рдорд╛рдк рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдХрд░реАрдм рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреВрд╕рд░рд╛ рдирд┐рдпрдВрддреНрд░рдг рдорд╛рдк рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╛рди рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдВ рдпрд╣ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдореЗрдВ MySQL рдХреИрд╢рд┐рдВрдЧ рддрдВрддреНрд░ рдХрд╛ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ InnoDB рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЦреЛрдЬ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЧрддрд┐ рдХреА рддреБрд▓рдирд╛:

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
рд╡рд┐рдзрд┐ | рдПрдХ рдЕрдиреБрд░реЛрдз рдХреА рдФрд╕рдд рдЧрддрд┐ (рд╕реЗрдХрдВрдб)ред | рдПрдХ рджреЛрд╣рд░рд╛рдпрд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдФрд╕рдд рдЧрддрд┐ (рд╕реЗрдХрдВрдб) |
MyISAM рдореЗрдВ рдорд┐рд░рд░ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ | 0.029738 | 0.011974 |
рдХреИрд╢реНрдб рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде MyISAM рдореЗрдВ рдПрдХ рдорд┐рд░рд░ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ | 0.025652 | 0.012027 |
MyISAM рдореЗрдВ рдПрдХ рдХреАрд╡рд░реНрдб рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ | 0.027876 | 0.008866 |
InnoDB рдореЗрдВ рдХреНрд╡реЗрд░реА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ рдкреНрд░рддреНрдпрдХреНрд╖ рдЦреЛрдЬ | 0.136091 | .режреп,релрекрез |
рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, InnoDB рдкрд░ рдкреНрд░рддреНрдпрдХреНрд╖ LIKE рдЦреЛрдЬреЛрдВ рдХреЛ рд╕рдмрд╕реЗ рдзреАрдорд╛ рдФрд░ рдмрд╛рдХреА рд╕рднреА рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЦреЛ рджреЗрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдЕрднреА рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЧрддрд┐ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рджреЗрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред
рд╢реЗрд╖ рдмрдЪреА рд╣реБрдИ рддреАрди рдЦреЛрдЬреА рд╡рд┐рдзрд┐рдпреЛрдВ рдиреЗ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рдЦреБрдж рдХреЛ рджрд┐рдЦрд╛рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдорд╛рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде, MyISAM рдореЗрдВ рдХреАрд╡рд░реНрдб (рдЯреИрдЧ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдореВрд░реНрдд рд▓рд╛рдн рджреЗрддрд╛ рд╣реИред рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде, рдЬреАрддрдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рд╣реИ - рдХреИрд╢реНрдб рджрд░реНрдкрдг рдмрдирд╛рдирд╛ред рдпрджрд┐ рдХреБрдЫ рдлрд╝реАрд▓реНрдб рджреВрд╕рд░реЛрдВ рд╕реЗ рдЖрдХрд╛рд░ рдореЗрдВ рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реИрдВ (рд▓реЗрдЦ рд╕рд╛рдордЧреНрд░реА, рд╕рдорд╛рдЪрд╛рд░ рдкрд╛рда), рддреЛ рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╣реИ - рджрд░реНрдкрдг рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдирд╛ред
MyISAM рдорд┐рд░рд░ рдмрдирд╛рдирд╛ рдЫреЛрдЯреЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ (рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 10-50 рд╣рдЬрд╛рд░ рд░рд┐рдХреЙрд░реНрдб) рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдЧрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ, рдФрд░ рддрдХрдиреАрдХреА рдХреНрд╖рдорддрд╛рдПрдВ рддреГрддреАрдп-рдкрдХреНрд╖ рддрдВрддреНрд░ (Sphinx, Apache Lucene) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред