將檔案拖放至此處

SQL 上載 ( 0 ) x -

請按 Ctrl+Enter 執行查詢 請按 Enter 執行查詢
遞增
遞減
排序:
SQL 偵錯
次數
執行排序
使用時間
排序依:
群組查詢
解除群組查詢
摺疊 展開 顯示追蹤 隱藏追蹤 次數: 使用時間:
選項
還原預設值
摺疊 展開 重新查詢 編輯 語句分析 效能分析 查詢失敗 資料庫: 查詢時間:

建議系統

可能影響執行效率的問題

問題:
上線時間不到 1 天,根據來作效能調整的資料可能不準確。
建議:
若要取得更準確的平均資料,建議在執行分析前讓伺服器執行至少一天
實際狀況:
上線時間僅有 0 天 0 小時,4 分 59 秒
使用的變數 / 公式:
Uptime
檢驗方式:
value < 86400
問題:
long_query_time 目前設定為超過 10 秒,只有執行時間超過 10 秒的查詢會被記錄。
建議:
建議您依據您的環境將 long_query_time 設定值調低,通常建議設在 1-5 秒之間。
實際狀況:
long_query_time 目前設定為 10 秒。
使用的變數 / 公式:
long_query_time
檢驗方式:
value >= 10
問題:
未啟用「緩慢查詢記錄」。
建議:
要啟用緩慢查詢記錄,請將 slow_query_log 設為 ON,這將有助於不良查詢的故障排除。
實際狀況:
slow_query_log 目前設定為 OFF
使用的變數 / 公式:
slow_query_log
檢驗方式:
value == 'OFF'
問題:
次佳的查詢快取方法。
建議:
You are using the MySQL Query cache with a fairly high traffic database. It might be worth considering to use memcached instead of the MySQL Query cache, especially if you have multiple replicas.
實際狀況:
已啟用查詢快取,伺服器每秒收到 422 個查詢。如果每秒超過 100 個查詢,將觸發此規則。
使用的變數 / 公式:
Questions / Uptime
檢驗方式:
value > 100
問題:
有大量資料列需要排序。
建議:
大量排序不是錯,但請確保 ORDER BY 子句使用有索引的欄位來排序,以加速排序的執行速度。
實際狀況:
平均排序列數:329.54 每秒
使用的變數 / 公式:
Sort_rows / Uptime
檢驗方式:
value * 60 >= 1
問題:
有太多的資料表連結(join)未使用索引。
建議:
這代表資料表連結(join)時會掃描整個資料表。將連結條件所使用的欄位設定為有索引的欄位,可大幅加快資料表連結時的速度。
實際狀況:
平均資料表連結(join)次數: 437.22 每秒,此值應小於每小時 1 次
使用的變數 / 公式:
(Select_range_check + Select_scan + Select_full_join) / Uptime
檢驗方式:
value * 60 * 60 > 1
問題:
讀取第一個索引項目比率過髙。
建議:
這通常表示資料庫時常掃描全部索引。雖然掃描全部索引,會比掃描資料表速度要快,但在擁有大量資料的資料表仍需消耗不少 CPU 時間,如果這些資料表有大量的更新和刪除操作,執行 OPTIMIZE TABLE 可以減少掃描全部索引的次數或提升速度,除此之外只能靠重寫查詢來減少掃描全部索引。
實際狀況:
平均掃描索引次數:380.82 每秒,此值應小於每小時 1 次
使用的變數 / 公式:
Handler_read_first / Uptime
檢驗方式:
value * 60 * 60 > 1
問題:
讀取固定位置資料比率過高。
建議:
這表示許多查詢的結果需要排序,或掃描整個資料表,這包括未使用索引的資料表連結(join)查詢。請在適當的地方增加索引。
實際狀況:
平均固定位置讀取次數:97.49 每秒,這個值應小於每小時 1 次
使用的變數 / 公式:
Handler_read_rnd / Uptime
檢驗方式:
value * 60 * 60 > 1
問題:
讀取資料表下一筆資料比率過高。
建議:
這表示有許多查詢需要掃描整個資料表。請適時增加索引。
實際狀況:
平均讀取資料表下一筆資料次數:6751.36 每秒,此值應小於每小時 1 次
使用的變數 / 公式:
Handler_read_rnd_next / Uptime
檢驗方式:
value * 60 * 60 > 1
問題:
太多的暫存資料表寫入至磁碟,而非儲存在記憶體。
建議:
增加 max_heap_table_sizetmp_table_size 可能有所幫助,但某些暫存資料表仍然會寫到磁碟,與這些變數無關。要解決這個問題,必須重寫查詢條件,避免在暫存資料表中儲存 BLOB 或 TEXT 類型的欄位,或者使用長度大於 512 位元組的欄位,如 MySQL 說明文件所提到的狀況
實際狀況:
暫存資料表寫入至磁碟的比率:1 每分鐘,此值應小於每小時 1 次
使用的變數 / 公式:
Created_tmp_disk_tables / Uptime
檢驗方式:
value * 60 * 60 > 1
問題:
MyISAM 鍵值緩衝區 (索引快取) % 使用率過低。
建議:
可能需要減少 key_buffer_size 的值,重新檢視資料表,是否曾經刪除過索引,或檢視查詢是否如預期的使用了索引。
實際狀況:
MyISAM 鍵值緩衝區最大使用 %:0%,此值應該要在 95% 以上
使用的變數 / 公式:
Key_blocks_used * key_cache_block_size / key_buffer_size * 100
檢驗方式:
value < 95
問題:
資料表開啟比率過高。
建議:
開啟資料表會大量使用磁碟存取。增加 table_open_cache 或能避免此問題。
實際狀況:
資料表開啟比率:3.26 每秒,此值應該低於每小時 10 次
使用的變數 / 公式:
Opened_tables / Uptime
檢驗方式:
value*60*60 > 10
問題:
檔案開啟比率過高。
建議:
請考慮增加 open_files_limit,並在更改 open_files_limit 設定後,重新啟動伺服器,並檢查錯誤記錄是否有異常。
實際狀況:
檔案開啟次數:2.01 每分鐘,此值應該低於每小時 5 次
使用的變數 / 公式:
Open_files / Uptime
檢驗方式:
value * 60 * 60 > 5
問題:
有太多的連線發生中斷。
建議:
連線通常會因為無法取得授權而中斷。要追查連線中斷的原因,請參閱此文章
實際狀況:
斷線的比率是 36.12 每小時,此值應小於每小時 1 次
使用的變數 / 公式:
Aborted_connects / Uptime
檢驗方式:
value * 60 * 60 > 1