# MySQL服務日志
[TOC]
## MySQL服務日志分類
* 錯誤日志(error):記錄MySQL服務進程mysqld在啟動/關閉或者運行過程中遇到的錯誤信息;
* 查詢日志(query log),分為以下兩類:
* 普通日志(general query log):記錄客戶端連接信息和執行的SQL語句信息( *生產環境中一般不開啟* );
* 慢查詢日志(slow query log):記錄執行時間超出指定值(long_query_time)的SQL語句;
* 二進制日志(binary log):記錄數據被修改的相關信息
### 慢查詢日志
慢查詢日志是用來記錄執行時間超過指定時間的查詢語句。
通過慢查詢日志,可以查找出哪些查詢語句的執行效率很低,以便進行優化。
一般建議開啟,它對服務器性能的影響微乎其微,但是可以記錄mysql服務器上執行了很長時間的查詢語句,可以幫助我們定位性能問題的。
#### 查看慢查詢日志的定義
~~~
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):定義的并非數據本身而是這一行的數據是什么;
3、混合模式(mixed):交替使用行和語句、由mysql服務器自行判斷。
其中基于行的定義格式數據量會大一些但是可以保證數據的精確性。
更多詳情參考:[MySQL服務日志](http://www.cnblogs.com/wangkongming/p/3684950.html)(待梳理)
- 寫在前面
- MySQL的使用
- MySQL多表同時刪除方案
- MySQL跨表、多表更新SQL語句總結
- MySQL存儲引擎
- 安裝
- 常規方式編譯安裝MySQL
- 采用cmake方式編譯安裝MySQL
- 使用rpm包安裝MySQL
- 使用yum方式安裝MySQL
- 采用二進制方式免編譯安裝MySQL
- 多實例的安裝
- 什么是多實例
- 多實例的作用、問題以及應用場景
- 多實例安裝01【推薦】
- 多實例官方安裝方案02
- 啟動、用戶和權限管理
- 單實例MySQL的啟動和關閉的方法
- 設置及修改MySQL root用戶密碼
- 找回丟失的MySQL root用戶密碼
- 創建MySQL用戶及用戶權限管理
- 基礎命令的操作
- MySQL庫和表相關操作
- MySQL中的索引操作
- MySQL常用命令
- MySQL的錯誤代碼
- MySQL復習秘籍
- 備份與恢復
- 備份
- 恢復
- mysqlbinlog命令
- 服務日志
- 主從復制
- 主從復制部署配置問題匯總
- 主從復制讀寫分離
- 災難恢復
- 配置phpmyadmin連接多實例MySQL
- 其他相關
- Sphinx實驗
- 中文分詞技術
- MySQL語句大全
- 用戶創建、權限、刪除
- 數據庫與表顯示、創建、刪除
- 表復制及備份還原
- 數據庫表中數據操作
- 修改表的列與表名
- 修改表中的數據
- 查詢表
- 日志
- 批量修改Mysql表引擎為InnoDB的方法
- 數據庫抽象層 PDO
- PDO對象常用方法
- PDO 事務處理
- PDO 與 MySQLi 二者效率簡單比較
- 大小寫敏感性 lower_case_table_names
- CentOS7安裝MySQL5.7密碼查看與修改