什么是慢查询?如何通过慢查询日志优化?
日志就跟人們寫的日記一樣,記錄著過往的事情。但是人的日記是主觀的(記自己想記的內(nèi)容),而數(shù)據(jù)庫的日志是客觀的,根據(jù)記錄內(nèi)容分為以下好幾種日志:
a、錯誤日志:記錄啟動、運(yùn)行或停止mysqld時出現(xiàn)的問題。
b、通用日志:記錄建立的客戶端連接和執(zhí)行的語句。
c、更新日志:記錄更改數(shù)據(jù)的語句。該日志在MySQL 5.1中已不再使用。
d、二進(jìn)制日志:記錄所有更改數(shù)據(jù)的語句。還用于復(fù)制。
e、慢查詢?nèi)罩?#xff1a;記錄所有執(zhí)行時間超過long_query_time秒的所有查詢或不使用索引的查詢。
f、Innodb日志:innodb redo log
缺省情況下,所有日志創(chuàng)建于mysqld數(shù)據(jù)目錄中。
可以通過刷新日志,來強(qiáng)制mysqld來關(guān)閉和重新打開日志文件(或者在某些情況下切換到一個新的日志)。
當(dāng)你執(zhí)行一個FLUSH LOGS語句或執(zhí)行mysqladmin flush-logs或mysqladmin refresh時,則日志被老化。
對于存在MySQL復(fù)制的情形下,從復(fù)制服務(wù)器將維護(hù)更多日志文件,被稱為接替日志。
這次我們介紹的就是慢查詢?nèi)罩尽:沃^慢查詢?nèi)罩?#xff1f;MySQL會記錄下查詢超過指定時間的語句,我們將超過指定時間的SQL語句查詢稱為慢查詢,都記在慢查詢?nèi)罩纠?#xff0c;我們開啟后可以查看究竟是哪些語句在慢查詢
?
開啟慢查詢?nèi)罩?/p>
查看慢查詢配置,沒有則在my.cnf中添加
mysql> show variables like '%slow%';?
+---------------------+---------------------------------------------------------------------+
| Variable_name ? ? ? | Value ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+---------------------+---------------------------------------------------------------------+
| log_slow_queries ? ?| OFF ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| slow_launch_time ? ?| 2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| slow_query_log ? ? ?| OFF ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\SZVY2AWX5511361-slow.log |
+---------------------+---------------------------------------------------------------------+
4 rows in set
?
分析日志 – mysqldumpslow
分析日志,可用mysql提供的mysqldumpslow,使用很簡單,參數(shù)可–help查看
?
推薦用分析日志工具 – mysqlsla
【說明】
queries total: 總查詢次數(shù) unique:去重后的sql數(shù)量
sorted by : 輸出報表的內(nèi)容排序
最重大的慢sql統(tǒng)計信息, 包括 平均執(zhí)行時間, 等待鎖時間, 結(jié)果行的總數(shù), 掃描的行總數(shù).
Count, sql的執(zhí)行次數(shù)及占總的slow log數(shù)量的百分比.
Time, 執(zhí)行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間占到總慢sql時間的百分比.
95% of Time, 去除最快和最慢的sql, 覆蓋率占95%的sql的執(zhí)行時間.
Lock Time, 等待鎖的時間.
95% of Lock , 95%的慢sql等待鎖時間.
Rows sent, 結(jié)果行統(tǒng)計數(shù)量, 包括平均, 最小, 最大數(shù)量.
Rows examined, 掃描的行數(shù)量.
Database, 屬于哪個數(shù)據(jù)庫
Users, 哪個用戶,IP, 占到所有用戶執(zhí)行的sql百分比
Query abstract, 抽象后的sql語句
Query sample, sql語句
轉(zhuǎn)載于:https://www.cnblogs.com/xyhero/p/40858bdec581108896159c8f9a2d05f9.html
總結(jié)
以上是生活随笔為你收集整理的什么是慢查询?如何通过慢查询日志优化?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。