MySQL 中的查詢統計
在“查詢統計”SQL 編輯器結果選項卡中收集了為執行的查詢收集的重要統計資訊,包括時間、臨時表、索引、聯接等(請參閱以下兩張圖)。
需求
啟用查詢並收集效能模式統計資訊。
performance_schema 已啟用語句檢測。
SQL 編輯器:查詢統計
視覺化解釋計劃
透過利用增強型 JSON 格式中包含的附加資料,視覺化解釋功能建立並呈現 MySQL EXPLAIN 語句的視覺化描述。所有 EXPLAIN 格式(包括標準格式、原始擴充套件 JSON 和視覺化查詢計劃)在 MySQL Workbench 中都可用於執行的查詢。
直觀演示用法
在 SQL 編輯器中執行您的查詢,然後從查詢結果選單中選擇“執行過程”以接收執行計劃的視覺化解釋。執行計劃包含類似於在 MySQL 客戶端中執行 EXPLAIN 時看到的表格解釋檢視,以及視覺化解釋檢視(這是預設檢視)。有關 MySQL 如何執行語句的詳細資訊,請參閱使用 EXPLAIN 最佳化查詢。
視覺化解釋約定
應從下到上、從左到右閱讀視覺化解釋圖。以下圖例中給出了用於表示視覺化解釋計劃各個元素的圖形、文字和資訊約定概述。要了解詳細資訊,請參閱 -
圖形標準
資訊和文字約定
第一張圖的視覺化解釋圖提供了以下查詢的視覺化描述。
select * FROM employee_table
視覺化解釋示例
圖形約定
標準框:表
圓角框:操作(如 GROUP 和 SORT)
帶邊框的框:子查詢
菱形:聯接
文字和資訊約定
框下方的標準文字:表(或別名)名稱
框下方的粗體文字:使用的鍵/索引
框右上方的數字:篩選後從表中使用的行數
框左上方的數字:訪問該表的相對成本(需要 MySQL 5.7 或更高版本)
巢狀迴圈(或雜湊聯接)菱形右邊的數字:聯接產生的行數
菱形上方的數字:聯接的相對成本(需要 MySQL 5.7 或更高版本)
下表顯示了視覺化解釋圖中使用的關聯顏色和描述。有關成本估算的更多資訊,請參閱最佳化器成本模型。
視覺化解釋圖資訊
系統名稱 |
顏色 |
視覺化圖上的文字 |
工具提示相關資訊 |
|---|---|---|---|
SYSTEM |
藍色 |
單行:系統常量 |
成本非常低 |
CONST |
藍色 |
單行:常量 |
成本非常低 |
EQ_REF |
綠色 |
唯一鍵查詢 |
低成本 - 最佳化器能夠找到可用於檢索所需記錄的索引。它速度很快,因為索引搜尋直接指向包含所有行資料的頁面 |
REF |
綠色 |
非唯一鍵查詢 |
中低 - 如果匹配的行數較少,則為低;隨著行數的增加,成本會更高 |
FULLTEXT |
黃色 |
全文索引搜尋 |
專門的全文搜尋。低 - 針對此專門的搜尋需求 |
REF_OR_NULL |
綠色 |
鍵查詢 + 獲取 NULL 值 |
中低 - 如果匹配的行數較少,則為低;隨著行數的增加,成本會更高 |
INDEX_MERGE |
綠色 |
索引合併 |
中等 - 在查詢中查詢更好的索引選擇以提高效能 |
UNIQUE_SUBQUERY |
橙色 |
對子查詢的表進行唯一鍵查詢 |
低 - 用於高效的子查詢處理 |
INDEX_SUBQUERY |
橙色 |
對子查詢的表進行非唯一鍵查詢 |
低 - 用於高效的子查詢處理 |
RANGE |
橙色 |
索引範圍掃描 |
中等 - 部分索引掃描 |
INDEX |
紅色 |
完整索引掃描 |
高 - 尤其對於大型索引 |
ALL |
紅色 |
完整表掃描 |
非常高 - 對於大型表來說成本非常高,但對小型表的影響較小。找不到表中可用的索引,這迫使最佳化器搜尋每一行。這也可能意味著搜尋範圍非常廣,以至於索引毫無用處。 |
UNKNOWN |
黑色 |
未知 |
注意:這是預設值,如果無法確定匹配項,則使用此值 |
結論
在本文中,我們學習瞭如何在 MySQL Workbench 中獲取查詢統計資訊,以及同時瞭解其不同特徵。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP