最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > 建站教程 > mysql教程 >

MySQL之慢查询日志(2)

时间:2014-08-12 01:40来源:未知 作者:最模板zuimoban 点击:
查看此时 slow log 的内容。 [root@Bettydata]#catmysql-slow /usr/ local /mysql/bin/mysqld,Version:5.6.10-log(Sourcedistribution).started with : Tcpport:0Unixsocket:( null ) Time IdCommandArgumen

查看此时 slow log 的内容。 


  1. [root@Betty data]# cat mysql-slow   
  2. /usr/local/mysql/bin/mysqld, Version: 5.6.10-log (Source distribution). started with:  
  3. Tcp port: 0  Unix socket: (null)  
  4. Time                 Id Command    Argument  
  5. Time: 130906 12:52:51  
  6. User@Host: root[root] @ localhost []  Id:     1  
  7. # Query_time: 3.002864  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0  
  8. SET timestamp=1378443171;  
  9. select sleep(3);  
  10. Time: 130906 12:53:01  
  11. User@Host: root[root] @ localhost []  Id:     1  
  12. # Query_time: 4.001943  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0  
  13. SET timestamp=1378443181;  
  14. select sleep(4);  
  15. Time: 130906 12:53:09  
  16. User@Host: root[root] @ localhost []  Id:     1  
  17. # Query_time: 5.002093  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0  
  18. SET timestamp=1378443189;  
  19. select sleep(5);  
  20. Time: 130906 12:53:15  
  21. User@Host: root[root] @ localhost []  Id:     1  
  22. # Query_time: 2.002984  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0  
  23. SET timestamp=1378443195;  
  24. select sleep(2);  
  25. [root@Betty data]# 

实验:   a. 使用 mysql 自带慢查询日志分析工具 mysqldumpslow 。 


  1. [root@Betty data]# mysqldumpslow mysql-slow   
  2.  
  3. Reading mysql slow query log from mysql-slow  
  4. Count: 4  Time=3.50s (14s)  Lock=0.00s (0s)  Rows=1.0 (4), root[root]@localhost  
  5.   select sleep(N)  
  6.  
  7. [root@Betty data]# 

b. 使用 hackmysql.com 推出的一款日志分析工具 mysqlsla 。 


  1. [root@Betty data]# mysqlsla -lt slow mysql-slow   
  2. Report for slow logs: mysql-slow  
  3. 4 queries total, 1 unique  
  4. Sorted by 't_sum'  
  5. Grand Totals: Time 14 s, Lock 0 s, Rows sent 4, Rows Examined 0  
  6.  
  7. ______________________________________________________________________ 001 ___  
  8. Count         : 4  (100.00%)  
  9. Time          : 14.009884 s total, 3.502471 s avg, 2.002984 s to 5.002093 s max  (100.00%)  
  10. Lock Time (s) : 0 total, 0 avg, 0 to 0 max  (0.00%)  
  11. Rows sent     : 1 avg, 1 to 1 max  (100.00%)  
  12. Rows examined : 0 avg, 0 to 0 max  (0.00%)  
  13. Database      :   
  14. Users         :   
  15.         root@localhost  : 100.00% (4) of query, 100.00% (4) of all users  
  16.  
  17. Query abstract:  
  18. SET timestamp=N; SELECT sleep(N);  
  19.  
  20. Query sample:  
  21. SET timestamp=1378443171;  
  22. select sleep(3);  
  23. [root@Betty data]# 

c. 使用德国人写的 mysql_explain_slow_log 。(不知道为什么未统计出信息) 


  1. [root@Betty WGET_DIR]# ./mysql_explain_slow_log --user=root --password= --socket=/tmp/mysql.sock < /usr/local/mysql/data/mysql-slow       
  2. mysql_explain_slow_log  
  3. ======================  
  4.  
  5. Index usage ------------------------------------  
  6.  
  7. Queries causing table scans -------------------  
  8.  
  9. Sum: 0 table scans  
  10.  
  11. Summary ---------------------------------------  
  12.  
  13. Select:         0 queries  
  14. Update:         0 queries  
  15. Load:   0 queries  
  16.  
  17. Logfile:        26 lines  
  18. Started:        Fri Sep  6 15:59:13 2013  
  19. Finished:       Fri Sep  6 15:59:13 2013  
  20. [root@Betty WGET_DIR]# 

d.    google code 上的一个分析工具 mysql_filter_slow_log (最后更新日期为2007年),提供了 python 和 php 两种可执行的脚本。  


  1. [root@Betty WGET_DIR]# python mysql_filter_slow_log.py /usr/local/mysql/data/mysql-slow --no-duplicates --sort-execution-count --top=10 
  2. # Execution count: 1 time on 2013-09-06 16:07:23. 
  3. Column       : avg | max | sum 
  4. # Query time   :   5 |   5 |   5 
  5. # Lock time    :   0 |   0 |   0 
  6. Rows examined:   0 |   0 |   0 
  7. Rows sent    :   1 |   1 |   1 
  8. User@Host: root[root] @ localhost []  Id:     1 
  9.  
  10. SET timestamp=1378454843;select sleep(5); 
  11.  
  12. # Execution count: 1 time on 2013-09-06 16:07:15. 
  13. Column       : avg | max | sum 
  14. # Query time   :   4 |   4 |   4 
  15. # Lock time    :   0 |   0 |   0 
  16. Rows examined:   0 |   0 |   0 
  17. Rows sent    :   1 |   1 |   1 
  18. User@Host: root[root] @ localhost []  Id:     1 
  19.  
  20. SET timestamp=1378454835;select sleep(4); 
  21.  
  22. # Execution count: 1 time on 2013-09-06 16:07:01. 
  23. Column       : avg | max | sum 
  24. # Query time   :   3 |   3 |   3 
  25. # Lock time    :   0 |   0 |   0 
  26. Rows examined:   0 |   0 |   0 
  27. Rows sent    :   1 |   1 |   1 
  28. User@Host: root[root] @ localhost []  Id:     1 
  29.  
  30. SET timestamp=1378454821;select sleep(3); 
  31.  
  32. # Execution count: 1 time on 2013-09-06 16:07:28. 
  33. Column       : avg | max | sum 
  34. # Query time   :   2 |   2 |   2 
  35. # Lock time    :   0 |   0 |   0 
  36. Rows examined:   0 |   0 |   0 
  37. Rows sent    :   1 |   1 |   1 
  38. User@Host: root[root] @ localhost []  Id:     1 
  39.  
  40. SET timestamp=1378454848;select sleep(2); 
  41.  
  42. [root@Betty WGET_DIR]# 

e. 使用 percona-toolkit 中的 pt-query-digest (在《高性能MySQL》中多次提出,值得使用的工具)。


  1. [root@Betty data]# pt-query-digest --user=root  mysql-slow               
  2.  
  3. # 120ms user time, 10ms system time, 20.21M rss, 68.70M vsz 
  4. Current date: Mon Sep  9 13:21:38 2013 
  5. # Hostname: Betty 
  6. # Files: mysql-slow 
  7. # Overall: 4 total, 1 unique, 0.15 QPS, 0.52x concurrency ________________ 
  8. Time range: 2013-09-06 16:07:01 to 16:07:28 
  9. # Attribute          total     min     max     avg     95%  stddev  median 
  10. # ============     ======= ======= ======= ======= ======= ======= ======= 
  11. Exec time            14s      2s      5s      4s      5s      1s      4s 
  12. # Lock time              0       0       0       0       0       0       0 
  13. Rows sent              4       1       1       1       1       0       1 
  14. Rows examine           0       0       0       0       0       0       0 
  15. # Query size            60      15      15      15      15       0      15 
  16.  
  17. # Profile 
  18. # Rank Query ID           Response time  Calls R/Call V/M   Item 
  19. # ==== ================== ============== ===== ====== ===== ====== 
  20. #    1 0xF9A57DD5A41825CA 14.0097 100.0%     4 3.5024  0.36 SELECT 
  21.  
  22. # Query 1: 0.15 QPS, 0.52x concurrency, ID 0xF9A57DD5A41825CA at byte 548 
  23. # This item is included in the report because it matches --limit. 
  24. # Scores: V/M = 0.36 
  25. Time range: 2013-09-06 16:07:01 to 16:07:28 
  26. # Attribute    pct   total     min     max     avg     95%  stddev  median 
  27. # ============ === ======= ======= ======= ======= ======= ======= ======= 
  28. Count        100       4 
  29. Exec time    100     14s      2s      5s      4s      5s      1s      4s 
  30. # Lock time      0       0       0       0       0       0       0       0 
  31. Rows sent    100       4       1       1       1       1       0       1 
  32. Rows examine   0       0       0       0       0       0       0       0 
  33. # Query size   100      60      15      15      15      15       0      15 
  34. # String: 
  35. # Hosts        localhost 
  36. # Users        root 
  37. # Query_time distribution 
  38. #   1us 
  39. #  10us 
  40. # 100us 
  41. #   1ms 
  42. #  10ms 
  43. # 100ms 
  44. #    1s  ################################################################ 
  45. #  10s+ 
  46. # EXPLAIN /*!50100 PARTITIONS*/ 
  47. select sleep(5)\G 
  48. [root@Betty data]# 

慢查询配置项  


  1. # I.e. you could add the following lines under the [mysqld] section of your my.ini or my.cnf configuration file: 
  2.  
  3. # Log all queries taking more than 3 seconds 
  4. long_query_time=3  # minimum: 1, default: 10 
  5.  
  6. # MySQL >= 5.1.21 (or patched): 3 seconds = 3000000 microseconds 
  7. # long_query_time=3.000000  # minimum: 0.000001 (1 microsecond) 
  8.  
  9. # Activate the Slow Query Log 
  10. slow_query_log  # >= 5.1.29 
  11. # log-slow-queries  # deprecated since 5.1.29 
  12.  
  13. # Write to a custom file name (>= 5.1.29) 
  14. # slow_query_log_file=file_name  # default: /data_dir/host_name-slow.log 
  15.  
  16. # Log all queries without indexes 
  17. # log-queries-not-using-indexes 
  18.  
  19. # Log only queries which examine at least N rows (>= 5.1.21) 
  20. # min_examined_row_limit=1000  # default: 0 
  21.  
  22. # Log slow OPTIMIZE TABLE, ANALYZE TABLEand ALTER TABLE statements 
  23. # log-slow-admin-statements 
  24.  
  25. # Log slow queries executed by replication slaves (>= 5.1.21) 
  26. # log-slow-slave-statements 
  27.  
  28. # MySQL 5.1.6 through 5.1.20 had a default value of log-output=TABLE, so you should force 
  29. # Attention: logging to TABLE only includes whole seconds information 
  30. log-output=FILE 
  31.  
  32.  
  33. ## Admin query for online activation is possible since MySQL 5.1 (without server restart) 
  34. ## SET @@global.slow_query_log=1 
  35. ## SET @@global.long_query_time=1 
  36.  
  37.  
  38. ## Show current variables related to the Slow Query Log 
  39. ## SHOW GLOBAL VARIABLES WHERE Variable_name REGEXP 'admin|min_examined|log_output|log_queries|log_slave|long|slow_quer' 
(责任编辑:最模板)
------分隔线----------------------------
栏目列表
推荐内容