1. 程式人生 > >MySQL日誌檔案之錯誤日誌和慢查詢日誌詳解

MySQL日誌檔案之錯誤日誌和慢查詢日誌詳解

實驗環境:MySQL Community Server (GPL) 5.7.17、Ubuntu 16.04

一、MySQL日誌檔案分類

官方文件:

這裡寫圖片描述

日誌檔案記錄了影響MySQL資料庫的各種型別活動。常見的日誌有以下幾個:

1、錯誤日誌(error log);
2、慢查詢日誌(slow query log);
3、二進位制日誌(binlog);
4、查詢日誌(log);

二、錯誤日誌

1、官方介紹文件:

2、MySQL錯誤日誌是記錄MySQL 執行過程中較為嚴重的警告和錯誤資訊,以及MySQL每次啟動和關閉的詳細資訊。

可以通過命令檢視MySQL錯誤日誌檔案位置:

mysql> show variables like 'log_error'\G;

這裡寫圖片描述

檢視如下:

這裡寫圖片描述

三、慢查詢日誌

1、官方介紹文件:

2、MySQL的慢查詢日誌是MySQL提供的一種日誌記錄,它用來記錄在MySQL中響應時間超過閥值的語句,具體指執行時間超過long_query_time值的SQL,則會被記錄到慢查詢日誌中。

long_query_time的預設值為10,意思是執行10s以上的語句。

預設情況下,MySQL資料庫並不啟動慢查詢日誌,需要我們手動來設定這個引數,當然,如果不是調優需要的話,一般不建議啟動該引數,因為開啟慢查詢日誌會或多或少帶來一定的效能影響。

慢查詢日誌支援將日誌記錄寫入檔案,也支援將日誌記錄寫入資料庫表。

3、可以通過如下命令檢視預設閥值和是否開啟:

#預設的閥值時間
mysql> show variables like 'long_query_time'\G;

這裡寫圖片描述

#是否開啟
mysql> show variables like 'slow_query_log'\G;

這裡寫圖片描述

4、開啟慢查詢日誌:

mysql> set global slow_query_log='ON';

這裡寫圖片描述

5、預設的慢查詢日誌檔案目錄

mysql> show variables like 'slow_query_log_file'\G;

這裡寫圖片描述

可以看出預設的慢查詢日誌,是以主機名和‘-slow’為名的,預設:host_name-slow.log

6、檢視慢查詢日誌

使用mysqldumpslow命令檢視方式如下:

xuliugen@xuliugen:~$ sudo mysqldumpslow /var/lib/mysql/xuliugen-slow.log

這裡寫圖片描述

關於mysqldumpslow 的更多使用方法,使用man mysqldumpslow 可以進行檢視:

這裡寫圖片描述

7、更改慢查詢的儲存方式

首先,通過命令檢視日誌的預設儲存方式:

mysql> show variables like 'log_output'\G;

這裡寫圖片描述

可以得知,預設的儲存方式是FILE即,存放在/var/lib/mysql/xuliugen-slow.log 下。

檢視官方文件對log_output 屬性的介紹:

這裡寫圖片描述

可以把方式改成TABLE的方式。

mysql> set global log_output='TABLE';

這裡寫圖片描述

修改為TABLE的方式之後,慢查詢日誌會以表的形式進行儲存,在mysql資料庫下的slow_log表中:

mysql> show create table mysql.slow_log\G;

這裡寫圖片描述

8、測試慢查詢日誌

使用命令模擬慢查詢:

mysql> select sleep(10);

這裡寫圖片描述

檢視慢查詢日誌:

mysql> select * from mysql.slow_log\G;

這裡寫圖片描述

9、更改預設的閥值時間

mysql> set global long_query_time=1;

這裡寫圖片描述

退出mysql console,重新登陸之後,檢視:

這裡寫圖片描述

為什麼要退出之後,才可以產看的到值得修改哪?這是因為long_query_time 屬性是基於當前會話的,官方文件如下:

這裡寫圖片描述

模擬兩次慢查詢,一次時間為0.9s、一次為1.1s:

這裡寫圖片描述

檢視慢查詢日誌如下:

這裡寫圖片描述

可以看出來只有1.1s的記錄進去了,說明設定閥值時間成功。

10、MySQL 5.7版本中還有兩個屬性:

 log_slow_admin_statements
 log_queries_not_using_indexes

在預設的情況下管理員操作資料庫的命令(包括:ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE, and REPAIR TABLE.)和查詢的沒有索引的語句是不進行記錄的。

這裡寫圖片描述

關於這兩個屬性可以在開發環境的時候進行設定,在實際的生產環境中由於對於沒有使用所索引的情況,這類的SQL語句會被頻繁的記錄到slow log中,使得slow log檔案的大小不斷增加,因此,因改進行合理的設定。

相關推薦

MySQL日誌檔案錯誤日誌查詢日誌

實驗環境:MySQL Community Server (GPL) 5.7.17、Ubuntu 16.04 一、MySQL日誌檔案分類 官方文件: 日誌檔案記錄了影響MySQL資料庫的各種型別活動。常見的日誌有以下幾個: 1、錯誤日誌(err

MySQL 第20天 MySQL日誌 錯誤日誌、二進位制日誌查詢日誌查詢日誌

MySQL日誌在任何一種資料庫中,都會有各種各樣的日誌,記錄著資料庫工作的方方面面,以幫助資料庫管理員追蹤資料庫曾經發生過的各種事件在 MySQL 中,有 4 種不同的日誌,分別是錯誤日誌、二進位制日誌(BINLOG 日誌)、查詢日誌和慢查詢日誌錯誤日誌錯誤日誌是 MySQL

MySQL日誌普通查詢日誌查詢日誌

Intro 之前的一篇分享提到,MySQL的日誌型別可以分為三種,錯誤日誌(error_log),查詢日誌(query_log),和二進位制日誌(binary_log),error_log的介紹與用法詳見MySQL日誌之error_log,本文主要介紹gene

mysql開啟binlog日誌查詢日誌

logs launch style spa 簡單 bsp mys 自動 文件的 1)首先,為什麽要開啟binlog日誌和慢查詢日誌呢? binlog日誌會記錄下數據庫的所以增刪改操作,當不小心刪除、清空數據,或數據庫系統出錯,這時候就可以使用binlog日誌來還原數據庫,

關於MySQL 通用查詢日誌查詢日誌分析

MySQL中的日誌包括:錯誤日誌、二進位制日誌、通用查詢日誌、慢查詢日誌等等。這裡主要介紹下比較常用的兩個功能:通用查詢日誌和慢查詢日誌。 1)通用查詢日誌:記錄建立的客戶端連線和執行的語句。 2)慢查詢日誌:記錄所有執行時間超過longquerytime秒的所有查詢或者不使用索引的查詢 (1)通用查詢

MySql 5.7 開啟binlog查詢日誌

MySQL5.7版本中,my.cnf的位置一般在/etc/my.cnf,要在my.cnf中新增: [mysqld] log-bin=/var/log/mysql-binlog/mysql-binlog server-id=1 slow_query_log=ON slow_

《高效能Mysql》重點總結(五)——查詢日誌、show profile、mysql鎖以及主從複製

本篇將介紹慢查詢日誌、show profile、mysql鎖以及主從複製。 一、慢查詢日誌 1. 是什麼 MySQL的慢查詢日誌是MySQL提供的一種日誌記錄,它用來記錄在MySQL中響應時間超過閥值的語句,具體指執行時間超過long_query_time值

MySQL索引原理查詢優化

1. 索引介紹 需求:   一般的應用系統,讀寫比例在10:1左右,而且插入操作和一般的更新操作很少出現效能問題,在生產環境中,我們遇到最多的,也是最容易出問題的,還是一些複雜的查詢操作,因此對查詢語句的優化顯然是重中之重。說起加速查詢,就不得不提到索引了。 索引:    簡單的說,相當於

logback日誌的使用,每天生成一個日誌檔案,以及error其他級別日誌的分離

springboot會自動幫我們讀取logback的配置檔案,我們實現只需要新增即可在application中配置日誌檔案的位置logging: config: classpath:conf/logback-dev.xml配置檔案的內容如下:<?xml versio

mysql優化(1)show命令 查詢日誌 explain profiling

目錄 一、優化概述 二、查詢與索引優化分析 1效能瓶頸定位 Show命令 慢查詢日誌 explain分析查詢 profiling分析查詢 2索引及查詢優化 三、配置優化 1)      max_connections 2)      back_lo

mysql查詢功能

mysql 慢查詢 優化有人的地方就有江湖,數據庫也是,sql優化這個問題,任重道遠,我們總是禁不住有爛sql。怎麽辦呢,還好各大數據庫都有相關爛sql的收集功能,而mysql的慢查詢收集也是異曲同工,配合分析sql的執行計劃,這個優化就有了搞頭了。開啟mysql慢查詢日誌1.查看當前慢查詢設置情況#查看慢查

【搞定MySQL資料庫】事務的4種隔離級別

資料庫事務的隔離級別有4種,由低到高分別為Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事務的併發操作中可能會出現髒讀,不可重複讀,幻讀。下面通過事例一一闡述它們的概念與聯絡。 1、讀未提交 

MySQL外來鍵約束On DeleteOn Update的

ON DELETE restrict(約束):當在父表(即外來鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外來鍵,如果有則不允許刪除。 no action:意思同restrict.即如果存在從資料,不允許刪除主資料。 cascade(級聯):當在父表(即外來鍵

mysql數據庫優化開啟查詢日誌

查詢日誌 long 沒有 sin 進入 src mage image 查詢 進入mysql數據庫,使用 show variables like ‘slow_query_log‘; 查看是否開啟了慢查詢日誌 value值為OFF,則慢查詢日誌沒有開啟,在

MySQL查詢日誌相關的配置使用。

其他 進制 數據 mps 執行 不存在 時間 tex http MySQL慢查詢日誌提供了超過指定時間閾值的查詢信息,為性能優化提供了主要的參考依據,是一個非常實用的功能,MySQL慢查詢日誌的開啟和配置非常簡單,可以指定記錄的文件(或者表),超過的時間閾值等就可以記

Mysql錯誤日誌、binlog日誌查詢日誌查詢日誌簡單介紹

安全 view 記錄 bin 嚴重 like mod ng- ror 前言 數據庫的日誌是幫助數據庫管理員,追蹤分析數據庫以前發生的各種事件的有力根據。mysq

MySQL錯誤日誌、二進制日誌查詢日誌、事務日誌

文件信息 comm nes 文件中 二進制日誌 expr mysq 文本 分別是 錯誤日誌:Error log 默認情況下錯誤日誌大概記錄以下幾個方面的信息: 1、服務器啟動和關閉過程中的信息(未必是錯誤信息,例如,mysql如何啟動INNODB的表空間文件的、如何初始化

MySQL (一) —— MySQL效能優化 查詢日誌

                        &nbs

MySQL查詢日誌

查看 慢查詢 more 技術 time 當前 ado png oca 慢日誌查詢概述:在生產環境中,如果要手工分析日誌、查找、分析SQL,顯然是個體力活,MySQL提供了日誌分析工具MySQLldumpslow是什麽? 怎麽玩?查看命令:show variables lik

mysql 優化開啟查詢日誌並分析原因

轉載:https://blog.csdn.net/haiqiao_2010/article/details/25138099 第一步.開啟mysql慢查詢 方式一:修改配置檔案 Windows:Windows 的配置檔案