共計 1784 個字符,預計需要花費 5 分鐘才能閱讀完成。
這期內容當中丸趣 TV 小編將會給大家帶來有關如何用 mysql 記錄耗時的 sql,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
記錄耗時的 sql
mysql 可以把耗時的 sql 或未使用索引的 sql 都記錄在 slow log 里,供優化分析使用。
1.mysql 慢查詢日志啟用:
mysql 慢查詢日志對于跟蹤有問題的查詢非常有用, 可以分析出當前程序里有很耗費資源的 sql 語句, 那如何打開 mysql 的慢查詢日志記錄呢?
mysql show variables like log_slow_queries
+——————+——-+
| Variable_name | Value |
+——————+——-+
| log_slow_queries | OFF |
+——————+——-+
1 row in set (0.01 sec)
mysql
這說明 slow log 功能沒有啟用,要啟用需要修改 mysql 的配置文件,在配置文件 [mysqld] 里添加如下倆參數:
long_query_time=1
log-slow-queries=/var/mysql/logs/slow.log
說明
long_query_time
此參數表示的是慢查詢的度量時間,單位是秒,最小是 1,缺省值是 10,凡是執行時間超過 long_query_time 的 sql 語句都會記錄到慢查詢日志中
log-slow-queries[=file_name]
file_name 參數可選,缺省值是 host_name-slow.log,如果指定了 file_name 參數的話,mysql 就會把慢查詢的日志記錄到 file_name 所設定的文件中,如果 file_name 提供的是一個相對路徑,mysql 會把日志記錄到 mysql 的 data 目錄中,這個參數只能在配置文件里添加,無法在命令行里執行。
2. 將未使用索引查詢也記錄到 slow log 中的配置
在 mysql 的啟動配置文件或命令行參數中增加“log_queries_not_using_indexes”參數就可以把未使用索引查詢語句添加到 slow log 里了。
樣例如下:
[root@localhost mysqlsla-2.03]# more /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
log_bin=/tmp/mysql/bin-log/mysql-bin.log
log_bin=ON
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
log_slow_queries=/tmp/127_slow.log
long_query_time=1
log_queries_not_using_indexes
…….
重啟 mysql 后,檢查結果如下:
mysql show variables like log_slow_queries
+——————+——-+
| Variable_name | Value |
+——————+——-+
| log_slow_queries | ON |
+——————+——-+
1 row in set (0.00 sec)
mysql show variables like long_query_time
+—————–+——-+
| Variable_name | Value |
+—————–+——-+
| long_query_time | 2 |
+—————–+——-+
1 row in set (0.00 sec)
mysql
上述就是丸趣 TV 小編為大家分享的如何用 mysql 記錄耗時的 sql 了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注丸趣 TV 行業資訊頻道。