日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

MySQL“慢SQL”定位

數據庫調優我個人覺得必須要明白兩件事
1.定位問題(你得知道問題出在哪里,要不然從哪里調優呢)
2.解決問題(這個沒有基本的方法來處理,因為不同的問題處理的方式方法不一樣,得從實踐中不斷的探索,如sql調優,配置優化,硬件升級等等)

步驟1:查詢是否開啟了慢查詢

mysql> show variables like '%slow%';+---------------------------+--------------------------------+| Variable_name | Value |+---------------------------+--------------------------------+| log_slow_admin_statements | OFF || log_slow_slave_statements | OFF || slow_launch_time | 2 || slow_query_log | ON || slow_query_log_file | /data/mysql/localhost-slow.log |+---------------------------+--------------------------------+5 rows in set (0.01 sec)mysql>
復制代碼

以MySQL5.7為例

我這里是開啟了,沒有開啟的,直接set global slow_query_log=on;就ok了。

mysql> set global slow_query_log=on;Query OK, 0 rows affected (0.05 sec)
復制代碼

步驟2:設置慢查詢的時間限制

mysql默認的慢查詢時間是10秒,可以設置成其它的時間。

mysql> show variables like 'long_query_time';+-----------------+-----------+| Variable_name | Value |+-----------------+-----------+| long_query_time | 10.000000 |+-----------------+-----------+1 row in set (0.03 sec)mysql> set long_query_time=1;Query OK, 0 rows affected (0.00 sec)mysql> show variables like 'long_query_time';+-----------------+----------+| Variable_name | Value |+-----------------+----------+| long_query_time | 1.000000 |+-----------------+----------+1 row in set (0.00 sec)mysql>
復制代碼

set global 只是全局session生效,重啟后失效,如果需要以上配置永久生效,需要在mysql.ini(linux my.cnf)中配置

步驟3:查看慢查詢

show status like ‘slow_queries’;
復制代碼

它會顯示慢查詢sql的數目,具體的sql就在上面的Log file日志中可以看到。

mysql> show status like 'slow_queries';+---------------+-------+| Variable_name | Value |+---------------+-------+| Slow_queries | 0 |+---------------+-------+1 row in set (0.01 sec)mysql>
復制代碼

其它命令

show processlist:查看哪些線程在運行;show open tables:查看哪些表在使用。
復制代碼

慢查詢分析日志

改一下慢查詢配置

mysql> set long_query_time=0.1;Query OK, 0 rows affected (0.05 sec)
復制代碼

執行幾條慢的SQL

mysql> select count(*) from users;+----------+| count(*) |+----------+| 100005 |+----------+1 row in set (0.28 sec)mysql> select * from users;......100005 rows in set (1.41 sec)mysql>
復制代碼
mysql> select count(*) from user_address_copy;+----------+| count(*) |+----------+| 30006 |+----------+1 row in set (0.08 sec)mysql> select * from user_address_copy;......30006 rows in set (0.39 sec)mysql>
復制代碼

vim 打開慢查詢記錄的文件slow_query_log_file | /data/mysql/localhost-slow.log

vim /data/mysql/localhost-slow.log

localhost-slow.log 內容如下:

/software/mysql/bin/mysqld, Version: 5.7.24 (MySQL Community Server (GPL)). started with:Tcp port: 3306 Unix socket: /software/mysql/mysql.sockTime Id Command Argument# Time: 2018-12-08T03:08:23.877322Z# User@Host: root[root] @ localhost [] Id: 24# Query_time: 0.551358 Lock_time: 0.000514 Rows_sent: 1 Rows_examined: 100005use test;SET timestamp=1544238503;select count(*) from users;# Time: 2018-12-08T03:09:06.038256Z# User@Host: root[root] @ localhost [] Id: 24# Query_time: 1.401716 Lock_time: 0.000220 Rows_sent: 100005 Rows_examined: 100005SET timestamp=1544238546;select * from users;# Time: 2018-12-08T03:12:03.207302Z# User@Host: root[root] @ localhost [] Id: 24# Query_time: 0.395499 Lock_time: 0.000378 Rows_sent: 30006 Rows_examined: 30006SET timestamp=1544238723;select * from user_address_copy;
復制代碼

Time :日志記錄的時間

User@Host:執行的用戶及主機

Query_time:查詢耗費時間 Lock_time 鎖表時間Rows_sent 發送給請求方的記錄條數 Rows_examined語句掃描的記錄條數

SET timestamp 語句執行的時間點

select .... 執行的具體語句

慢查詢日志分析工具

分析慢查詢日志是性能調優中獲取信息的主要方式之一。

如果slow log比較小,那么可以直接使用vi等文本編輯器或less、more命令打開。但如果slow log過大,載入慢查詢日志將耗費大量時間,這個時候就要考慮使用其他工具來對慢查詢進行分析了。

mysql的自帶工具mysqldumpslow,可以有效的幫助我們對slow log進行篩選和分析。

官方文檔5.7版本地址:dev.mysql.com/doc/refman/…

參看官方文檔可以略去本文。

執行mysqldumpslow –h可以查看幫助信息。

主要介紹兩個參數-s和-t

-s 這個是排序參數,可選的有:al: 平均鎖定時間ar: 平均返回記錄數at: 平均查詢時間c: 計數l: 鎖定時間r: 返回記錄t: 查詢時間-t n 顯示頭n條記錄。
復制代碼

實例:

mysqldumpslow -s c -t 20 host-slow.logmysqldumpslow -s r -t 20 host-slow.log
復制代碼

上述命令可以看出訪問次數最多的20個sql語句和返回記錄集最多的20個sql。

mysqldumpslow -t 10 -s t -g “left join” host-slow.log

這個是按照時間返回前10條里面含有左連接的sql語句。

用了這個工具就可以查詢出來那些sql語句是性能的瓶頸,進行優化,比如加索引,該應用的實現方式等。

分享到:
標簽:MySQL sql
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定