1. 程式人生 > >mysql 慢日誌開啟 及explain 分析sql語句

mysql 慢日誌開啟 及explain 分析sql語句

檢視當前資料庫是否開啟了日誌:

mysql > show variables like 'log_%';

mysql 的日誌型別有以下幾種:

+---------------------------------+-------------------------------------+
| Variable_name                   | Value                               |
+---------------------------------+-------------------------------------+
| log_bin                         | OFF                                 |
| log_bin_trust_function_creators | OFF                                 |
| log_error                       | D:\phpservice\mysql\Data\1.err |
| log_output                      | FILE                                |
| log_queries_not_using_indexes   | OFF                                 |
| log_slave_updates               | OFF                                 |
| log_slow_queries                | OFF                                 |
| log_warnings                    | 1                                   |
+---------------------------------+-------------------------------------+

日誌檔案 記入檔案中的資訊型別
錯誤日誌 :  記錄啟動、執行或停止時出現的問題。
查詢日誌  :  記錄建立的客戶端連線和執行的語句。
二進位制日誌: 記錄所有更改資料的語句。主要用於複製和即時點恢復。
慢日誌 :記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。

事務日誌: 記錄InnoDB等支援事務的儲存引擎執行事務時產生的日誌。

預設情況下,所有日誌創建於mysqld資料目錄中。通過重新整理日誌,你可以強制 mysqld來關閉和重新開啟日誌檔案(或者在某些情況下切換到一個新的日誌)。當你執行一個FLUSH LOGS語句或執行mysqladmin flush-logs或mysqladmin refresh時,出現日誌重新整理。如果你正使用MySQL複製功能,從複製伺服器將維護更多日誌檔案,被稱為接替日誌。

默 認情況下,所有日誌創建於mysqld資料目錄中。

拓展:http://www.cnblogs.com/wangkongming/p/3684950.html

mysql 慢日誌開啟 

在預設情況下,mysql是不會記錄慢查詢,需要我們指定啟用慢查詢日誌,才會把執行速度慢的sql語句放入到日誌.

啟動方式:

{%bin%}/mysqld.exe  --safe-mode  --slow-query-log

注:在預設情況下mysql認為慢查詢的時間10s,為了看效果,我們把這個慢查詢時間調整為1s

 調整慢查詢時間:

① 先檢視


① 修改


若有慢sql語句。這會在慢日誌中出現以下情況:


 explain的用法

基本用法

mysql>explain select語句