mysql中如何查看sql語句是否用到索引


1、操作步驟

1.1 使用explain ,放在sql前面
在這里插入圖片描述
2、解釋
我們只需要注意一個最重要的type 的信息很明顯的提現是否用到索引:

type結果值從好到壞依次是:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

一般來說,得保證查詢至少達到range級別,最好能達到ref,否則就可能會出現性能問題。

possible_keys:sql所用到的索引

key:顯示MySQL實際決定使用的鍵(索引)。如果沒有選擇索引,鍵是NULL

rows: 顯示MySQL認為它執行查詢時必須檢查的行數

3、profiling分析
想要優化一條query sql ,就要清楚這條query的性能瓶頸在哪里,mysql的profiler是一個非常方便的查詢診斷分析工具,通過該工具可以獲取一條查詢在整個執行過程中多種資源的消耗情況,例如內存消耗、I/O消耗和CPU消耗
profile的語法結構:
show profile [type [,type] …]
[for query n]
[limit row_count [offset offset]]
其中type參數可選含義如下:
all:顯示所有信息
block io:顯示輸入輸出操作阻塞的數量
context switches:顯示自動或非自動context switches的數量
cpu:顯示系統和用戶CPU使用的時間
ipc:顯示信息發送和接受的數量
memory:內存的信息
page faults:顯示主要的page faults數量
source:顯示函數的名稱,並且是那些函數所在文件的名字和行數
swaps:顯示swap數量

開啟profile
set profiling = 1;
在這里插入圖片描述
開啟query profiler功能之后,MySQL就會自動記錄所有執行的query的profile信息
select count(*) from customers1;
通過執行show profiles 命令獲取當前系統中保存的多個query的profile的概要信息
在這里插入圖片描述
針對單個query獲取詳細的profile信息(根據概要信息中的query_id來獲取)
show profile for query 5;

在這里插入圖片描述
在這里插入圖片描述

 轉載:https://blog.csdn.net/weixin_45310179/article/details/99591496


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM