mysql 語句分析 MySQL語句執行分析

2021-10-17 11:41:31 字數 2069 閱讀 7933

今天客戶那邊遇到乙個問題:多選檔案進行操作,資料量一大後台處理就特別慢,瀏覽器顯示504超時。為了驗證問題是否出在sql語句,所以用以下方法來分析:

查詢sql執行記錄

explain 分析

mysql 語句執行時間

下面會分別介紹三個方法的開啟方法。

查詢sql執行記錄

查詢日誌功能是否開啟

show variables like 'general%';

image

general_log:日誌記錄功能是否開啟,預設為off

general_log_file:日誌存放路徑

開啟日誌功能

set global general_log = 'on';

在指定路徑檢視sql記錄

explain 分析

大部分的效能分析都需要使用到該命令,可以用來檢視sql語句的執行效果,可以幫助選擇更好地索引和優化語句。

語法explain + sql語句

輸出:image

引數解析

mysql 語句執行時間

show profile 以及show profiles語句可以顯示當前會話過程中執行sql語句的效能資訊。

檢視profile是否開啟

show variables like '%profil%';

image

profiling:off 預設此功能關閉

設定開啟狀態

set profiling = 1;

再次檢視是否開啟

image

已經是開啟狀態

執行sql語句後進行分析

執行完後,輸入

show profiles;

即可檢視所有的sql的執行時間

image

show profile for query 1

檢視第1個sql語句的執行的各個操作的耗時詳情。

image

show profile cpu, block io, memory,swaps,context switches,source for query 6;

可以檢視出一條sql語句執行的各種資源消耗情況,比如cpu,io等

show profile all for query 6 檢視第6條語句的所有的執行資訊。

測試完畢後,關閉引數:

mysql> set profiling=0

慢查詢開啟慢查詢,可以設定乙個時間閾值,當ssql執行時間超過閾值,則會被記錄。通過這樣可以定位到需要優化的sql

檢視慢查詢命令

mysql> show variables like 'slow_query%';

| variable_name | value |

| slow_query_log | off |

| slow_query_log_file | /var/lib/mysql/50aacb0262cd-slow.log |

mysql> show variables like 'long_query_time';

| variable_name | value |

| long_query_time | 10.000000 |

引數說明:

slow_query_log :是否開啟慢查詢

slow_query_log_file :慢查詢日誌存放位置

long_query_time:設定閾值,超過該值才會做記錄

設定步驟

開啟慢查詢

set global slow_query_log='on';

設定存放日誌位置

set global slow_query_log_file='/var/lib/mysql/slow.log ';

設定超時時間

set global long_query_time=1;

日誌效果

首先我執行一句sql

mysql> select sleep(3);

| sleep(3) |

| 0 |

1 row in set (3.00 sec)

檢視日誌記錄

image

可以檢視到涉及到超過1s的sql詳情

mysql語句高階 Mysql高階SQL語句

show columns from table name from database name 或show columns from database name.table name 或show fields 解釋 顯示表中列名稱 和 desc table name 命令的效果是一樣的 檢視連線數,...

mysql執行語句 mysql執行sql語句過程

流程概述 mysql得到sql語句後,大概流程如下 1.sql的解析器 負責解析和 sql 2.預處理器 對解析後的sql樹進行驗證 3.查詢優化器 得到乙個執行計畫 4.查詢執行引擎 得到資料結果集 5.將資料放回給呼叫端。流程圖如下所示 分發器及快取階段 首先,如果系統的快取功能開啟著的話,sq...

mysql基本語句例子 mysql常用的語句示例

登陸資料庫 mysql hlocalhost uroot p123456 u後面是使用者名稱 p後面是賬號密碼 h後面是host 檢視資料庫列表 show databases 建立資料庫 create database test 刪除資料庫 drop database test 使用資料庫 use ...