mysql 開啓慢查詢、二進制日誌

  對於SQL調優,其中關鍵的一點是開啓慢查詢日誌。MYSQL會記錄下查詢超過指定時間的語句,經過定位分析性能的瓶頸,mysql

才能更好的優化數據庫系統的性能。sql

  MYSQL慢查詢日誌默認是關閉的。須要經過在 /etc/my.cnf 配置中添加以下參數:數據庫

#開啓慢查詢日誌
slow_query_log=ON
#慢查詢的閾值,默認爲10秒,最小爲0,精度能夠到微妙
long_query_time=3
#日誌記錄文件若是沒有給出file_name值, 默認爲主機名,後綴爲-slow.log。若是給出了文件名,但不是絕對路徑名,文件則寫入數據目錄。
slow_query_log_file=slow_query.log

  配置修改後,重啓數據庫性能

# service mysqld restart

  

  驗證開啓慢日誌查詢:優化

  第一種直接經過變量來確認是否開啓。3d

mysql> show variables like 'slow_query%';
+---------------------+----------------+
| Variable_name       | Value          |
+---------------------+----------------+
| slow_query_log      | ON             |
| slow_query_log_file | slow_query.log |
+---------------------+----------------+
2 rows in set (0.00 sec)

mysql> show variables like 'slow_query_time%';
Empty set (0.00 sec)

mysql> show variables like 'long_query_time%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 3.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

  

  第二種是直接經過查看慢日誌文件內容來確認:rest

  執行超過3s的查詢語句。日誌

 

 

 

 

  查看慢查詢日誌內容:blog

   這樣咱們就能經過慢日誌拿到SQL,從而再對SQL進行索引排查,進行SQL優化。索引

 

  二進制文件:記錄數據變化

  binlog記錄了數據庫全部的ddl語句和dml語句,但不包括select語句內容,語句以事件的形式保存,描
述了數據的變動順序,binlog還包括了每一個更新語句的執行時間信息。若是是DDL語句,則直接記錄到
binlog日誌,而DML語句,必須經過事務提交才能記錄到binlog日誌中。 生產中才開啓二進制日誌。

  主要做用:數據備份、恢復、主從

  開啓二進制日誌:

  在 /etc/my.cnf 配置中添加以下配置:

log-bin=mysql-bin

  執行 service mysqld restart 重啓數據庫。查看數據庫目錄

 

   出現了mysql-bin文件,後面的序號是備份次數,文件會在數據庫備份、重啓時,都會爲當前的數據進行備份。

好比我再執行多兩次重啓數據庫,會生成這樣的文件。

 

相關文章
相關標籤/搜索