?
本文檔使用
php中文網手冊 發(fā)布
MySQL服務日志
MySQL服務日志分類
慢查詢日志
查看慢查詢日志的定義
啟動和設置慢查詢日志
二進制日志
錯誤日志(error):記錄MySQL服務進程mysqld在啟動/關閉或者運行過程中遇到的錯誤信息;
查詢日志(query log),分為以下兩類:
普通日志(general query log):記錄客戶端連接信息和執(zhí)行的SQL語句信息(
生產環(huán)境中一般不開啟
);
慢查詢日志(slow query log):記錄執(zhí)行時間超出指定值(long_query_time)的SQL語句;
二進制日志(binary log):記錄數(shù)據(jù)被修改的相關信息
慢查詢日志是用來記錄執(zhí)行時間超過指定時間的查詢語句。
通過慢查詢日志,可以查找出哪些查詢語句的執(zhí)行效率很低,以便進行優(yōu)化。
一般建議開啟,它對服務器性能的影響微乎其微,但是可以記錄mysql服務器上執(zhí)行了很長時間的查詢語句,可以幫助我們定位性能問題的。
mysql> SHOW GLOBAL VARIABLES LIKE 'slow_query%'; | slow_query_log | OFF # 定義慢查詢日志的 | slow_query_log_file |/mydata/data/stu18-slow.log # 輸出方式為file(文件)時定義慢查詢日志的位置
通過配置文件my.cnf中的log-slow-queries
選項可以開啟慢查詢日志;
>[danger]
[mysqld]
slow_query_log=1
long_query_time=10 # 設置默認超過時間記錄慢查詢日志
log-slow-queries [= DIR/[filename] ]
log_queries_not_using_indexes=on # 未使用索引的查詢語句是否記錄
通過命令行直接定義或者修改滿查詢日志時間
mysql> SHOW GLOBAL VARIABLES LIKE 'long%'; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | long_query_time | 1.000000 | +-----------------+----------+ mysql> set global long_query_time=10; Query OK, 0 rows affected (0.00 sec) mysql> SHOW GLOBAL VARIABLES LIKE 'long%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.00 sec)
二進制日志中常用的定義格式:
1、語句(statement):默認的記錄格式;
2、行(row):定義的并非數(shù)據(jù)本身而是這一行的數(shù)據(jù)是什么;
3、混合模式(mixed):交替使用行和語句、由mysql服務器自行判斷。
其中基于行的定義格式數(shù)據(jù)量會大一些但是可以保證數(shù)據(jù)的精確性。
更多詳情參考:MySQL服務日志(待梳理)