如何檢視慢SQL

2021-09-25 13:01:38 字數 2652 閱讀 1346

windows/linux環境下搭建mysql流程

建立使用者、庫、表

如果安裝路徑下沒有my.ini檔案,則手動建立乙個,然後輸入的內容參考第二步

[client]

port=3306

[mysql]

no-beep

# default-character-set=

[mysqld]

port=3306

# character-set-server=

# 預設儲存引擎innodb

default-storage-engine=innodb

# set the sql mode to strict

sql-mode="strict_trans_tables,no_auto_create_user,no_engine_substitution"

#日誌輸出為檔案

log-output=file

# 是否開啟sql執行結果記錄,必須要設定general_log_file引數,日誌的路徑位址

# 即日誌跟蹤,1為開啟,0為關閉,咱開啟

general-log=0

general_log_file="execute_sql_result.log"

# 配置慢查詢,5.7版本預設為1,這裡long_query_time=10要改很小,方便出慢sql日誌

slow-query-log=1

slow_query_log_file="user-slow.log"

long_query_time=10

#預設不開啟二進位制日誌

#log-bin=mysql-log

#錯誤資訊檔案設定,會將錯誤資訊放在data/mysql.err檔案下

log-error=mysql.err

# server id.資料庫伺服器id,這個id用來在主從伺服器中標記唯一mysql伺服器

server-id=1

#lower_case_table_names: 此引數不可以動態修改,必須重啟資料庫

#lower_case_table_names = 1  表名儲存在磁碟是小寫的,但是比較的時候是不區分大小寫

#lower_case_table_names=0  表名儲存為給定的大小和比較是區分大小寫的 

#lower_case_table_names=2, 表名儲存為給定的大小寫但是比較的時候是小寫的

lower_case_table_names=1

# 最大連線數

max_connections=151

# 開啟表的最大快取數

table_open_cache=2000

# tmp_table_size 控制記憶體臨時表的最大值,超過限值後就往硬碟寫,寫的位置由變數 tmpdir 決定 

tmp_table_size=16m

# 每建立乙個連線,都需要乙個執行緒來與之匹配,此引數用來快取空閒的執行緒,以至不被銷毀,

# 如果執行緒快取中有空閒執行緒,這時候如果建立新連線,mysql就會很快的響應連線請求。

# 最大快取執行緒數量

thread_cache_size=10

特別強調,更改如下配置, # 是否開啟sql執行結果記錄,必須要設定general_log_file引數,日誌的路徑位址

# 即日誌跟蹤,1為開啟,0為關閉,咱開啟

general-log=1

general_log_file="execute_sql_result.log"

# 配置慢查詢,5.7版本預設為1,這裡long_query_time=10要改很小,方便出慢sql日誌

slow-query-log=1

slow_query_log_file="user-slow.log"

long_query_time=0.00001

重啟mysql服務

重啟後,可以通過cmd命令檢視下設定是否生效:

通過業務執行或者直接通過圖形化操作工具執行sql命令,如,select a.api_name,b.case_id from inte***ce_api as a inner join inte***ce_data_store as b on a.api_id=b.api_id; 可以看到執行時間是0.003sec,大於定義的慢查詢數值。

然後在如下路徑下檢視執行sql執行日誌和慢查詢檔案中的內容。

如何定位並優化慢查詢Sql

主要關注下述三個變數 long query time show query log file show query log 慢查詢sql會被記錄到show query log file 日誌檔案中。show variables like quer 查詢相關變數 show status like sh...

如何定位並優化慢查詢sql

慢查詢日誌的作用 查詢慢查詢日誌是否開啟 以及 日誌存放的路徑 show variables like slow query 查詢慢查詢sql的數量 查詢慢查詢sql的數量 show status like slow queries 開啟慢日誌命令 set global slow query log...

MySQL慢查詢 檢視慢查詢日誌

在mysql 中,慢查詢日誌主要用來記錄響應時間超過閾值的sql。響應時間超過 long query time 預設值為 10秒 會被記錄到慢查詢日誌中,日誌可以設定為檔案或者資料庫表。在命令列輸入如下命令可以檢查慢查詢日誌是否被開啟 show variables like query 如果slow...