MySQL高階十一-慢查詢

黄舟
發布: 2016-12-29 16:50:10
原創
993 人瀏覽過

MySQL記錄下查詢超過指定時間的語句,我們將超過指定時間的SQL語句查詢稱為慢查詢。

1、查看時間限制

show variables like '%long%';
登入後複製

就會看到:

+---------------------------------------------------+-----------+
| Variable_name                        | Value     |
+---------------------------------------------------+-----------+
| long_query_time                        | 10.000000 |
| max_long_data_size                     | 1048576   |
| performance_schema_events_waits_history_long_size | 10000     |
+---------------------------------------------------+-----------+
登入後複製


如果查詢超過long_query_time的時間就稱為慢查詢。

2、查看資料庫的啟動時間

show status like 'uptime%';
登入後複製

就會看到

+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| Uptime                    | 76333 |
| Uptime_since_flush_status | 76333 |
+---------------------------+-------+
登入後複製


3、查看查詢語句條數

rr數



show status like 'com_Select';
登入後複製

就會看到



+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select    | 1     |
+---------------+-------+
登入後複製

5、設定慢查詢的時間



show status like 'connections';
登入後複製
6、以安全模式啟動mysql服務,將會寫入慢記錄中。


開啟慢查詢日誌

在MySQL的設定檔中加上以下參數

log-show-queries = D:/MySQL/Log/mysqld-slow-query.log

long-query-time = 5
log-queries-not-using-indexes

闡述:

有關慢查詢日誌功能存放位置,該目錄檔案一定要有寫的權限。可以用設置,系統會給一個缺省的文件host_name-show.log

long_query_time

SQL執行時間閥值,默認為10秒

注意一下三點:

1、設置long_query_time這個閥值後, mysql資料庫會記錄所有運行時間超過該值的SQL語句,但對於運行時間剛好等於long_query_time的情況並不會被記錄下來。也就是說,在mysql源碼裡是判斷大於log_query_time,而不是大於等於。

2、從MySQL5.1開始,long_query_time開始以微秒計算,讓精確記錄SQL的運行時間。

3、建議該時間不應太小或太大,最好在5-10秒之間。當然可以根據自己的情況來定。

log-queries-not-using-indexes

如果執行的SQL語句沒有使用索引,則mysql資料庫同樣會將這條SQL語句記錄到慢查詢日誌檔案之中。


 以上就是MySQL高階十一-慢查詢的內容,更多相關內容請關注PHP中文網(www.php.cn)!




相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!