?
This document uses PHP Chinese website manual Release
MySQL服務日志
MySQL服務日志分類
慢查詢?nèi)罩?/p>
查看慢查詢?nèi)罩镜亩x
啟動和設置慢查詢?nèi)罩?/p>
二進制日志
錯誤日志(error):記錄MySQL服務進程mysqld在啟動/關(guān)閉或者運行過程中遇到的錯誤信息;
查詢?nèi)罩?query log),分為以下兩類:
普通日志(general query log):記錄客戶端連接信息和執(zhí)行的SQL語句信息(
生產(chǎn)環(huán)境中一般不開啟
);
慢查詢?nèi)罩?slow query log):記錄執(zhí)行時間超出指定值(long_query_time)的SQL語句;
二進制日志(binary log):記錄數(shù)據(jù)被修改的相關(guān)信息
慢查詢?nèi)罩臼怯脕碛涗泩?zhí)行時間超過指定時間的查詢語句。
通過慢查詢?nèi)罩?,可以查找出哪些查詢語句的執(zhí)行效率很低,以便進行優(yōu)化。
一般建議開啟,它對服務器性能的影響微乎其微,但是可以記錄mysql服務器上執(zhí)行了很長時間的查詢語句,可以幫助我們定位性能問題的。
mysql> SHOW GLOBAL VARIABLES LIKE 'slow_query%'; | slow_query_log | OFF # 定義慢查詢?nèi)罩镜? | slow_query_log_file |/mydata/data/stu18-slow.log # 輸出方式為file(文件)時定義慢查詢?nèi)罩镜奈恢?/pre>啟動和設置慢查詢?nèi)罩?!-- /react-text -->
通過配置文件my.cnf中的
log-slow-queries
選項可以開啟慢查詢?nèi)罩荆?!-- /react-text -->
>[danger]
[mysqld]
slow_query_log=1
long_query_time=10 # 設置默認超過時間記錄慢查詢?nèi)罩?!-- /react-text -->
log-slow-queries [= DIR/[filename] ]
log_queries_not_using_indexes=on # 未使用索引的查詢語句是否記錄通過命令行直接定義或者修改滿查詢?nèi)罩緯r間
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服務日志(待梳理)