【數據庫-MySQL】mysql日誌詳解及性能優化

mysql日誌分爲四大類:慢查詢日誌,查詢日誌,錯誤日誌,二進制日誌

一.慢查詢日誌:大於慢查詢時間的語句,都會記錄在慢查詢日誌中

1.查看慢查詢是否開啓 show variables like "slow_query_log"; 如下:slow_query_log: ON/OFF

 

 

slow_query_log_file:慢查看日誌名稱:slow.log 2.開啓慢查詢 set global slow_query_log='ON'; 3.查看慢查詢時間 show variables like "%long%"; 如下:long_query_time :單位爲秒

 

4.設置慢查詢時間 set global long_query_time=2; 設置後要重新退出登錄mysql才字段值纔會更新

 

二.查詢日誌:查詢日誌記錄了數據庫執行的命令,不管這些語法是否正確,都會被記錄

1.查詢日誌一般默認關閉狀態

由於數據庫操作命令非常多而且比較頻繁,所以開啓了查詢日誌以後,數據庫可能需要不停的寫入查詢,這樣會增大服務器的IO壓力,增加很多的系統開銷,所以默認情況下,mysql的查詢日誌默認關閉

2.查看開關及日誌名稱

 

3.開啓/關閉查詢日誌開關

set global general_log = "OFF";

 

三.錯誤日誌

1.錯誤日誌包括:mysql執行過程中的錯誤信息,mysql執行過程中的告警信息,mysq啓動和停止過程中產生的信息等

2.查看錯誤日誌相關參數

 

show variables where variable_name="log_error" or variable_name="log_warnings";

log_error:錯誤日誌的存放路徑

log_warnings:表示是否記錄告警信息到錯誤日誌,0表示不記錄告警信息,1表示記錄告警信息,大於1表示各類告警信息,例如有關網絡故障的信息和重新連接信息寫入錯誤日誌

FILE:

 

四.二進制日誌

1.作用:二進制日誌是一個二進制文件,記錄了對MySQL數據庫執行更改的所有操作,並且記錄了語句發生時間、執行時長、操作數據等其他額外信息,但是他不記錄SELECT、SHOW等那些不改變數據庫的SQL語句。二進制日誌主要用於數據庫恢復和主從複製,以及審計操作

2.查看二進制日誌

 

log_bin:表示二進制日誌是否開啓,ON表示開啓,OFF表示未開啓,默認OFF

log_bin_basename:二進制日誌文件前綴名,二進制日誌就記錄在該文件中

binlog_format:決定了二進制日誌的記錄方式,STATEMENT以語句的形式記錄,ROW以數據修改的形式記錄,MIXED以語句和數據修改混合形式記錄

 

https://www.cnblogs.com/plyonfly/p/11469802.html

 

五.優化

1.max_connections:最大連接數,如果你經常看到‘Too many connections’錯誤,是因爲max_connections的值太低了,可以調整爲1000

MySQL>show variables like 'max_connections';

2.back_log

由默認的50修改爲500 back_log=500

back_log值指出在MySQL暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中。

也就是說,如果MySql的連接數據達到max_connections時,新來的請求將會被存在堆棧中,

以等待某⼀一連接釋放資源,該堆棧的數量即back_log,如果等待連接的數量超過back_log,

將不不被授予連接資源。查看mysql 當前系統默認back_log值,

命令:show variables like 'back_log’;

修改配置文件:/etc/my.cnf

https://blog.csdn.net/fuzhongfaya/article/details/80866197

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章