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語句