SQL 測試查詢語法是否有用到索引欄位的方法 [效能提升/加快速度 方法]
SQL 測試查詢語法是否有用到索引欄位的方法 [效能提升/加快速度 方法]
資料來源:Copilot
MySQL [EXPLAIN]
EXPLAIN SELECT * FROM your_table WHERE your_column = 'some_value';
查看輸出: 執行上述語句後,MySQL 會返回一個表格,包含以下重要欄位:
△id: 查詢的識別碼。
△select_type: 查詢的類型。
△table: 查詢涉及的表。
△type: 連接類型,顯示查詢的效率。
△possible_keys: 查詢可能使用的索引。
△key: 實際使用的索引。
△key_len: 使用的索引鍵長度。
△ref: 哪些列或常量與索引一起使用。
△rows: MySQL 預計需要讀取的行數。
△Extra: 其他附加信息。
解讀結果:
▼如果 key 欄位顯示了一個索引名稱,則表示該查詢使用了索引。
▼如果 key 欄位為 NULL,則表示沒有使用索引。
SQLite [EXPLAIN QUERY PLAN]
EXPLAIN QUERY PLAN SELECT * FROM your_table WHERE your_column = 'some_value';
查看輸出: 執行上述語句後,SQLite 會返回一個表格,包含以下重要欄位:
△id: 節點的識別碼。
△parent: 父節點的識別碼。
△notused: 一個未使用的輔助欄位。
△detail: 描述節點的詳細信息。
解讀結果:
▼如果 detail 欄位中包含 SEARCH,則表示查詢使用了索引。
▼如果 detail 欄位中包含 SCAN,則表示查詢進行了全表掃描,沒有使用索引。