MySQL рдХреНрд╡реЗрд░реА рдХрд┐рд▓рд░ - DBMS рдЕрдзрд┐рднрд╛рд░ рдлреНрдпреВрдЬ

рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдУрд╡рд░рд▓реЛрдб рд╕реЗ рдХреИрд╕реЗ рдмрдЪрд╛рдпрд╛ рдЬрд╛рдПред

рдЖрдкрдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
1. рдПрдХ рдЕрдиреБрд░реЛрдз рджреВрд╕рд░реЛрдВ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ
2. рдХреБрдЫ рдЕрдиреБрд░реЛрдз рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддреЗ рд╣реИрдВ
рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рди рд╣реЛрдВред

рдЗрд╕рд▓рд┐рдП, рд╕реНрдорд╛рд░реНрдЯ "рдХреНрд╡реЗрд░реА рд╣рддреНрдпрд╛рд░рд╛" рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ "рдЪреМрдХреАрджрд╛рд░" рд╣реЛрдЧрд╛
рдЬреЛ рд╕рдВрджрд┐рдЧреНрдз рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░реЗрдЧрд╛ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдореБрдХреНрдд рдХрд░реЗрдЧрд╛ред

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

рдирд┐рдпреБрдХреНрддрд┐


рдХреНрд╡реЗрд░реА рд╣рддреНрдпрд╛рд░рд╛ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рд╣реИ:
1. рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдЬрдм:
1.1ред рдХреБрдЫ рдЕрдиреБрд░реЛрдз рд▓реЙрдХ рдФрд░ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддреЗ рд╣реИрдВ
1.2ред рдХрдо рд╕рдордп рдореЗрдВ рд╢реБрд░реВ рдХреА рдЧрдИ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреНрд╡реЗрд░реА рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рд░реЛрдХрддреА рд╣реИрдВ
2. рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рд╡реЗрд╢
3. рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛:
3.1ред рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдм рдПрдХ рдЕрдиреБрд░реЛрдз рджреВрд╕рд░реЗ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИ - рддрд╛рд▓реЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рдорд╛рд░реЗрдВ: рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдорд╛рд░реЗрдВ
3.2ред рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЕрдиреБрд░реЛрдз рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддреЗ рд╣реИрдВ - рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: рдЙрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдорд╛рд░реЗрдВ рдЬреЛ рдХреБрдЫ рдХрдо рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ

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

рддрд░реНрдХ - рдЫрджреНрдо рд╕рдВрд╣рд┐рддрд╛


рдиреАрдЪреЗ рдХреНрд╡реЗрд░реА-рд╣рддреНрдпрд╛рд░рд╛ рдХреЗ рд▓рд┐рдП рдЫрджреНрдо рдХреЛрдб рд╣реИ

-- CONSTANTS: SET @alert_query_duration:=10; SET @alert_queries_max_count:=6; SET @dangerous_query_duration:=15; SET @dangerous_queries_max_count:=30; SET @dangerous_queries_affect_duration_bottom:=5; -- Check long queries: SELECT @alert_queries_count:=COUNT(0) FROM information_schema.processlist WHERE COMMAND != 'Sleep' AND TIME>@alert_query_duration ORDER BY TIME DESC; IF (@alert_queries_count >= @alert_queries_max_count) THEN 1. Report to error_log: module = Query killer error = Maximum amount of long queries reached context = List of all long queries (which longer than @alert_query_duration) 2. Take actions: -- Check if there is a lot of dangerous queries already -- (which may cause each other locks): SELECT @dangerous_queries_count:=COUNT(0) FROM information_schema.processlist WHERE COMMAND != 'Sleep' AND TIME>@dangerous_query_duration ORDER BY TIME DESC; IF (@dangerous_queries_count >= @dangerous_queries_max_count) THEN -- KILL dangerous queries and queries, which probably might be already affected by them -- (so kill all queryes, where TIME>@dangerous_queries_affect_duration_bottom) ... ELSE -- KILL one query (the longes one) which probably locks all others ... END END 


рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЦрддрд░рдирд╛рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ:

1. рдЕрдиреБрд░реЛрдз рд▓реЙрдХ рдФрд░ рдЗрд╕ рддрд░рд╣ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдВрдкреНрд░рджрд╛рдп рдХреИрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдПрдХ рдореЗрдЬ рдкрд░ рдПрдХ рд▓рдВрдмрд╛ рддрд╛рд▓рд╛ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдПрдХ рд╕рдорд╛рди рддрд╕реНрд╡реАрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:
  97669965    root    localhost     gtf    289  Query CREATE TABLE gtf.cache_vw_... 99057101    root localhost:33092     gtf    284  Query UPDATE media INNER JOIN image_file USING(media_id) INNER JOIN i 99057467    root localhost:51863     gtf    276  Query UPDATE media INNER JOIN image_file USING(media_id) INNER JOIN i 99057499    root localhost:51868     gtf    275  Query UPDATE media INNER JOIN image_file USING(media_id) INNER JOIN i 99057840    root localhost:33164     gtf    267  Query UPDATE media INNER JOIN image_file USING(media_id) INNER JOIN i 99057907    root localhost:54313     gtf    266  Query UPDATE media INNER JOIN image_file USING(media_id) INNER JOIN i 99057987    root localhost:59942     gtf    264  Query UPDATE media INNER JOIN image_file USING(media_id) INNER JOIN i 99059528    root localhost:52062     gtf    229  Query UPDATE media INNER JOIN image_file USING(media_id) INNER JOIN i 

рдпрд╣рд╛рдВ рдХреИрд╢ рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдкрд╣рд▓рд╛ рдЕрдиреБрд░реЛрдз рдореАрдбрд┐рдпрд╛ рдЯреЗрдмрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ

2. рдХрдо рд╕рдордп рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдирд╛

рдпреЗ рдЕрд╕реНрдерд╛рдпреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╢реНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ ; рдлрд╛рдЗрд▓рд╕рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
 +------+-------------+-------+--------+----------------------------------+----------------------------------+---------+-----------------+------+----------------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +------+-------------+-------+--------+----------------------------------+----------------------------------+---------+-----------------+------+----------------------------------------------+ | 1 | SIMPLE | vw | ref | fk_cache_vw_video_website1 | fk_cache_vw_video_website1 | 4 | const | 8643 | Using where; Using temporary; Using filesort | | 1 | SIMPLE | mtc | eq_ref | PRIMARY,content_id | PRIMARY | 4 | gtf.vw.media_id | 1 | Using where | +------+-------------+-------+--------+----------------------------------+----------------------------------+---------+-----------------+------+----------------------------------------------+ 


рдЬреЛ, рдлрд┐рд░ рднреА, рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рдХрд╛рдлреА рдкрд╡рд┐рддреНрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪрд░рдо рднрд╛рд░ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдореЛрдбрд╝рддреЗ рд╣реИрдВред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рд╡рд┐рдХрд╛рд╕ рдкрджреНрдзрддрд┐ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рднрд╛рдЧреЛрдВ рдХреЗ "рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ" рдЕрдиреБрдХреВрд▓рди рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд░рдЦрддреА рд╣реИ,
рдФрд░ рдЬрд╣рд╛рдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрдХреВрд▓рди рд╕реНрдкрд╖реНрдЯ рдЕрдбрд╝рдЪрди-рдПрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдж рдореЗрдВ - рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдкрддрд╛ рдЪрд▓рд╛ред

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


All Articles