рдЕрднреНрдпрд╛рд╕ рдореЗрдВ MySQL рдИрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдИрд╡реЗрдВрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд▓реЛрдЧ MySQL рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 5.1 рдХреЗ рдмрд╛рдж рд╕реЗ, MySQL рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд MySQL рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдерд╛, рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╣рдо рдЦреБрдж рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ рдХрд┐ MySQL рдореЗрдВ рдХреМрди рд╕реА рдШрдЯрдирд╛рдПрдВ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдП?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдШрдЯрдирд╛рдПрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдШрдЯрдирд╛ рдХреЗ рдЕрдВрджрд░, рдЖрдк SQL рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдмрд╕ рдкреВрд░реНрд╡ рд▓рд┐рдЦрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдПрдХ рддреЗрдЬреА рд╕реЗ рд╕реВрдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧреЗ рд░рд╣реЗрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдз рд▓реЙрдЧ рд╣реЛрддреЗ рд╣реИрдВред

рд╢реЗрдбреНрдпреВрд▓рд░ рдЪрд╛рд▓реВ рдХрд░реЗрдВ


рдИрд╡реЗрдВрдЯ рдЪрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ event_scheduler рдЧреНрд▓реЛрдмрд▓ рдЪрд░ред MySQL рдХреЗ рд▓рд┐рдП рдмрд╛рдж рдореЗрдВ 5.1.11 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдпрд╣ 3 рдорд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ:
рдмрдВрдж (рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ 0 ): рдЕрдиреБрд╕реВрдЪрдХ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд╢реЗрдбреНрдпреВрд▓рд░ рдереНрд░реЗрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ SHOW PROCESSLIST рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЛрдИ рд╢реЗрдбреНрдпреВрд▓ рдХрд┐рдП рдЧрдП рдИрд╡реЗрдВрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ OFF_Schedulerред
рдЪрд╛рд▓реВ ( 1 рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ): рдЕрдиреБрд╕реВрдЪрдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд╢реЗрдбреНрдпреВрд▓рд░ рдереНрд░реЗрдб рд╕реНрд╡рдпрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдЕрдиреБрд╕реВрдЪрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдШрдЯрдирд╛ рдЕрдиреБрд╕реВрдЪрдХ рдзрд╛рдЧрд╛ рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реЛ PROCESSLIST рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИ
рдЕрд╕реНрд╡реАрдХреГрдд : рдорд╛рди рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдмрдирд╛рддрд╛ рд╣реИред рд╢реЗрдбреНрдпреВрд▓рд░ рдереНрд░реЗрдб рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ SHOW PROCESSLIST рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реИред

рд╣рдо рд╢рд╛рдорд┐рд▓ рд░рд╛рдЬреНрдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

event_scheduler=1

рдпрд╛ рдПрдХ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

 SET GLOBAL event_scheduler=ON; 


рдПрдХ рдШрдЯрдирд╛ рдмрдирд╛рдПрдБ


рдореБрдЭреЗ рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рдЕрдВрджрд░ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд▓рдЧрд╛ред рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;) рддреЛ, рдЪрд▓реЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:

 CREATE DEFINER = 'root'@'localhost' PROCEDURE `new_proc`() NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN DECLARE tbl_tmp,tbl_logarch VARCHAR(50); -- tbl_log     --       tbl_log_<>_<> SET tbl_logarch=DATE_FORMAT(CURRENT_TIMESTAMP, '%Y%m%d_%H%i'); SET tbl_tmp=CONCAT("tbl_log_", tbl_logarch); --  SQL     ; SET @archive_query:=CONCAT("CREATE TABLE ", tbl_tmp, " ENGINE=ARCHIVE AS (SELECT * FROM tbl_log)"); --    PREPARE archive_query FROM @archive_query; EXECUTE archive_query; DEALLOCATE PREPARE archive_query; --     ,       DELETE FROM tbl_log; END; 


рдЕрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

 call new_proc(); 


рдпрджрд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ, рддреЛ рдЬрд╛рд░реА рд░рдЦреЗрдВред рдПрдХ рдШрдЯрдирд╛ рд╕реАрдзреЗ рдмрдирд╛рдПрдБред рд╕рд░рд▓реАрдХреГрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
CREATE EVENT event_name ON SCHEDULE AT {DATE AND TIME} DO {SQL COMMAND};

рдпрд╛
CREATE EVENT event_name ON SCHEDULE EVERY {X} {SECOND|MINUTE|HOUR|DAY|MONTH|YEAR|WEEK} DO {SQL COMMAND};


рдореБрдЭреЗ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕рдВрдЧреНрд░рд╣ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдбреАрдбреАрдПрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 CREATE EVENT `new_event` ON SCHEDULE EVERY 1 WEEK STARTS CURRENT_TIMESTAMP ON COMPLETION NOT PRESERVE ENABLE COMMENT '' DO call new_proc(); 


рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ


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

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

рд▓реЗрдЦрди рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛:
dev.mysql.com/doc/refman/5.1/en/events.html
www.rldp.ru/mysql/mysqlpro/events.htm

UPD: рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдлрд╝реЗрдбрд░реЗрдЯреЗрдб рдЯреЗрдмрд▓ рдФрд░ MySQL рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╡реЗрдВрдЯ рдкреНрд▓рд╛рдирд░ рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЦреБрдж рдЗрд╕рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред рдЬреЛ рд╡рд┐рд╖рдп рдореЗрдВ рд╣реИ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ pliz рд▓рд┐рдЦреЗрдВред

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


All Articles