欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 你的like語句為什么沒索引詳解

你的like語句為什么沒索引詳解

熱門標簽:寶應電信400電話辦理費用 電銷機器人針對的 湘潭電銷機器人咨詢電話 外呼系統服務 外呼系統防封號違法嗎 高德地圖標注中心個人注冊 400電話辦理都選易號網 高德地圖標注模式 如何在高德地圖標注新地址

前言

本文旨在用最通俗的語言講述最枯燥的基本知識

這個話題比較有意思。昨天中午吃完飯間突然有個同事蹦出了一句:“like有索引嗎?”,我順口就說沒有,另一個同事反駁說有啊,還有些同事說看情況的有,這下有點懵逼了,都不知道那種說法是正確的,于是決定花了個半小時來研究驗證這個問題,終于得到答案。

怎么驗證的呢?

坊間有傳言:MySQL性能優化有個神器,叫做explain,它可以對select語句進行分析并且輸出詳細的select執行過程的詳細信息,讓開發者從這些信息中獲得優化的思路。

下面來講講這個MySQL提供的explain命令:

語法:explain SQL語句例如:

1explain select * from user where id=1

執行完畢之后,它的輸出有以下字段:

  id
  select_type
  table
  partitions
  type
  possible_keys
  key
  key_len
  ref
  rows
  Extra

要想知道explain命名怎么使用,就必須把這些字段搞清楚

1. id

SELECT查詢的標識符, 每個SELECT語句都會自動分配一個唯一的標識符

2. select_type

每個select查詢字句的類型,具體類型以及對應作用如下表:

類型名 解釋
SIMPLE 簡單SELECT,不使用UNION或子查詢等
PRIMARY 查詢中若包含任何復雜的子部分,最外層的select被標記為PRIMARY
UNION UNION中的第二個或后面的SELECT語句
DEPENDENT UNION UNION中的第二個或后面的SELECT語句,取決于外面的查詢
UNION RESULT UNION的結果
SUBQUERY 子查詢中的第一個SELECT
DEPENDENT SUBQUERY 子查詢中的第一個SELECT,取決于外面的查詢
DERIVED 派生表的SELECT, FROM子句的子查詢
UNCACHEABLE SUBQUERY 一個子查詢的結果不能被緩存,必須重新評估外鏈接的第一行

3. table

顯示這一行的數據是查哪張表的,不過有時短路顯示的不是真實的表名。

4. partitions

匹配的分區(這個目前用處不大)

5. type

訪問類型,表示MySQL在表中找到所需行的方式,對應的值和解釋如下:

類型名 優級別 解釋
system 1 表僅有一行
const 2 表最多有一個匹配行,在查詢開始時即被讀取
eq_ref 3 使用primary key或者unique key作為多表連接的條件,僅從該表中讀取一行
ref 4 作為查詢條件的索引在每個表匹配索引值的行從表中讀取出來
fulltext 5 全文索引檢索
ref_or_null 6 和ref一致,但增加了NULL值查詢支持
index_merge 7 表示使用了索引合并優化方法
unique_subquery 8 使用了替換了in子查詢
index_subquery 9 使用了替換了in子查詢,但只適用于子查詢中的非唯一索引
range 10 只檢索給定范圍的行,使用一個索引來選擇行
index 11 全表掃描,但掃描表的方式是按索引的次序進行
ALL 12 全表掃描的方式找到匹配的行

type作為訪問類型,其值代表著當前查詢所用的類型,是體現性能的一個重要指標,從表中可以看到,從上到下,掃描表的方式越來越寬,性能也就越來越差,因此,對于一個查詢,最好能保持在range級別以上。

6. possible_keys

主動指出查詢能用哪個索引在表中找到記錄也就是會列出在查詢中的字段中有索引的字段,但不一定被查詢所用。

7. key

顯示再查詢中實際使用的索引/鍵,如果沒有索引,則顯示NULL。但如果想強制查詢中使用或忽視possible_keys列中的索引,則可以在查詢中使用FORCE INDEX、USE INDEX或者IGNORE INDEX。

8. key_len

表示索引中使用的字節數。

9. ref

表示哪些列或常量被用于查找索引列上的值。

10. rows

顯示當前查詢估算到的查找到匹配記錄所需的記錄行數。

11. Extra

顯示當前查詢所用的解決方式,它有以下幾種情況:

類型名 解釋
Using where 列數據是從僅僅使用了索引中的信息而沒有讀取實際的行動的表返回的,
Using temporary 表示MySQL需要使用臨時表來存儲結果集,常見于排序和分組查詢
Using filesort MySQL中無法利用索引完成的排序操作稱為“文件排序”
Using join buffer 改值強調了在獲取連接條件時沒有使用索引,并且需要連接緩沖區來存儲中間結果。如果出現了這個值,那應該注意,根據查詢的具體情況可能需要添加索引來改進能。
Impossible where 這個值強調了where語句會導致沒有符合條件的行。
Select tables optimized away 這個值意味著僅通過使用索引,優化器可能僅從聚合函數結果中返回一行

講完了語法,我們來實際操作一波,首先創建個表:

-- 創建表
CREATE TABLE test(
id INT(11) NOT NULL AUTO_INCREMENT,
uname VARCHAR(255),
PRIMARY KEY(id) 
);

然后給uname字段加上索引:

-- 添加索引
ALTER TABLE test ADD INDEX uname_index (uname);

查看一下索引是否添加成功:

-- 查看是否有索引
SHOW INDEX FROM test;

輸出結果為:

可以看出索引已經創建成功,接下來添加一些數據:

-- 添加一些數據
INSERT INTO test VALUES(1,'jay');
INSERT INTO test VALUES(2,'ja');
INSERT INTO test VALUES(3,'bril');
INSERT INTO test VALUES(4,'aybar');

一切準備就緒,下面用explain這個命令來探究一些like語句是否有索引,like有四種情況,分別為沒有%、 %% 、左%、右%、

1. like 字段名

EXPLAIN SELECT * FROM test WHERE uname LIKE 'j'; 

輸出為:

可以看出:type的值為:range,key的值為uname_index,也就是說這種情況下,使用了索引。

2. like %字段名%

EXPLAIN SELECT * FROM test WHERE uname LIKE '%j%'; 

輸出為:

可以看出:type的值為ALL也就是全表掃描,而且key的值為NULL,也就是說沒用到任何索引。

3. like %字段名

EXPLAIN SELECT * FROM test WHERE uname LIKE '%j'; 

輸出為:

可以看出:type的值為ALL,key的值為NULL,同樣沒用到索引。

4. like 字段名%

EXPLAIN SELECT * FROM test WHERE uname LIKE 'j%'; 

輸出為:

可以看出:type的值為:range,key的值為uname_index,也就是說這種情況下,使用了索引。

總結

由上面的試驗可以總結出like是否使用索引的規律:like語句要使索引生效,like后不能以%開始,也就是說 (like %字段名%)  、(like %字段名)這類語句會使索引失效,而(like 字段名)、(like 字段名%)這類語句索引是可以正常使用。

其它

為了查證like索引的問題,研究了MySQL神奇explain,但explain不僅僅只能檢查索引使用情況,還可以提供很多其它的性能優化方面的幫助,至于具體的使用,其實跟上面講的一樣,把explain結果列出來,然后順藤摸瓜查閱相關的字段就可以得到相應的內容。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 利用reverse索引優化like語句的方法詳解

標簽:南充 蘭州 佛山 黔南 宿遷 黃山 馬鞍山 賀州

巨人網絡通訊聲明:本文標題《你的like語句為什么沒索引詳解》,本文關鍵詞  你的,like,語句,為什么,沒,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《你的like語句為什么沒索引詳解》相關的同類信息!
  • 本頁收集關于你的like語句為什么沒索引詳解的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    国产老肥熟一区二区三区| 伊人久久久久久久久久久久久久| 色婷婷精品久久二区二区蜜臀av| 国产女人水真多18毛片18精品视频| 青青草伊人久久| 日韩av手机在线播放| 欧美久久久久久久久| 洋洋av久久久久久久一区| 亚洲国产日韩在线一区| 91精品1区2区| 一区二区免费在线| 免费看三级黄色片| 欧美性受xxxx黑人xyx性爽| 亚洲美女视频在线| 被黑人猛躁10次高潮视频| 欧美自拍偷拍一区| 亚洲一区av在线| 免费黄色三级网站| 日韩欧美专区在线| 久久99久国产精品黄毛片色诱| 国产传媒国产传媒| 国产日韩视频一区二区三区| 国产精品一线二线三线精华| 黄色录像免费观看| 亚洲欧美国产三级| 久久无码专区国产精品s| 欧美久久久影院| 免费在线观看不卡| 九九热免费在线| 国产精品免费看片| 91在线无精精品入口| 欧美日本韩国一区二区三区视频 | 精品亚洲porn| 日本人妖一区二区| aa片在线观看视频在线播放| 久久综合九色综合欧美亚洲| 国产精品99久久久久久宅男| 好吊色视频在线观看| 亚洲一区在线看| 亚洲精品理论片| 国产校园另类小说区| 暴力调教一区二区三区| 欧美三电影在线| 蜜臀久久99精品久久久久久9| 女人黄色一级片| 国产精品初高中害羞小美女文| 一区二区三区人妻| 日韩一二三区不卡| 国产激情视频一区二区三区欧美 | 奇米影视在线99精品| 久久只有这里有精品| 欧美一区二区三区在线视频| 青青草成人在线观看| 91麻豆精东视频| 亚洲乱码国产乱码精品精的特点| 亚洲天堂小视频| 日韩精品中文字幕在线不卡尤物 | 9久草视频在线视频精品| 欧美理论在线播放| 国产综合色精品一区二区三区| 丁香花五月激情| 日韩激情视频在线观看| 影音先锋男人资源在线观看| 亚洲午夜免费视频| 中文字幕欧美激情极品| 亚洲综合无码一区二区| 日韩女同一区二区三区| 亚洲伦在线观看| 日本成人午夜影院| 亚洲一级在线观看| 国产精品久久久久久成人| 亚洲永久免费av| 欧洲性xxxx| 亚洲国产精品自拍| 免费精品在线视频| 视频一区在线播放| 色综合激情五月| 久久66热re国产| 欧美亚洲动漫精品| 国产精品一区二区在线看| 4438亚洲最大| 99在线精品一区二区三区| 欧美精品一区二区三区在线| 美女又黄又免费的视频| 欧美韩日一区二区三区四区| 久久人人爽人人爽人人片| 一区二区三区欧美日| 国产精品18在线| 热久久一区二区| 欧美体内she精高潮| 国产99久久久国产精品 | 日本性生活一级片| 自拍偷在线精品自拍偷无码专区| 亚洲一区二区三区日韩| 亚洲第一二三四区| 91久久人澡人人添人人爽欧美| 国产一区二区三区免费播放| 日韩欧美在线网站| 动漫av在线免费观看| 亚洲精品视频一区| 麻豆天美蜜桃91| 国产精品18久久久久久久久| 欧美tk丨vk视频| 中国一级特黄录像播放| 亚洲一区二区三区免费视频| 色综合久久中文综合久久97| 国产成人在线视频免费播放| 久久夜色精品国产欧美乱极品| 精品人妻一区二区免费视频| 亚洲一区二区三区国产| 欧美在线色视频| 99久久婷婷国产综合精品| 国产精品二三区| 小向美奈子av| 国产黑丝在线一区二区三区| 久久免费国产精品| 中文字幕第20页| 卡一卡二国产精品| 精品少妇一区二区三区视频免付费| 中文字幕三级电影| 亚洲成av人影院| 欧美精品亚洲二区| jjzzjjzz欧美69巨大| 亚洲福利视频一区二区| 91福利在线观看| 91免费视频网| 亚洲与欧洲av电影| 欧美日韩国产影片| 国产chinese中国hdxxxx| 午夜视频一区在线观看| 欧美日本在线一区| 成人区人妻精品一区二| 视频一区视频二区在线观看| 欧美肥大bbwbbw高潮| 无码人妻久久一区二区三区蜜桃| 一区二区三区日韩欧美| 欧美日韩视频不卡| 久久精品女同亚洲女同13| 视频一区欧美日韩| 欧美一级二级三级乱码| 亚洲国产成人精品视频| 欧美日韩精品福利| 亚洲の无码国产の无码步美| 麻豆91在线观看| 国产婷婷色一区二区三区四区| 男女全黄做爰文章| av一本久道久久综合久久鬼色| 亚洲欧美视频在线观看视频| 欧美三级日韩在线| 中文成人无字幕乱码精品区| 美女爽到高潮91| 日本一区二区免费在线| 色综合久久九月婷婷色综合| 国产ts在线观看| 美女在线一区二区| 日本一区二区三区dvd视频在线| 午夜少妇久久久久久久久 | 久久精品视频在线免费观看| 99自拍偷拍视频| 99久久伊人久久99| 国产精品九色蝌蚪自拍| 91福利在线免费观看| 国产视频精品视频| 极品美女销魂一区二区三区免费| 国产精品网站一区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 在线免费看黄色片| 国产一区二区精品久久| 亚洲欧美日韩在线播放| 日韩欧美中文一区| 国产又粗又硬又长又爽| 第一页在线视频| 国内精品第一页| 一区二区日韩av| 欧美精品一区在线观看| 欧洲国内综合视频| 成人午夜剧场视频网站| 成人av在线资源网站| 丝袜诱惑制服诱惑色一区在线观看| 久久久久97国产精华液好用吗| 日本高清免费不卡视频| 国产色视频一区二区三区qq号| 岛国一区二区在线观看| 亚洲一区二区不卡免费| 国产三级精品在线| 欧美精品久久一区| 99成人在线观看| 欧美大片免费播放器| 成人av网站在线观看免费| 日本伊人色综合网| 亚洲色欲色欲www在线观看| 日韩精品一区二区三区在线播放 | 免费观看黄网站| 韩国成人在线视频| 亚洲福利电影网| 亚洲欧洲国产专区| 精品播放一区二区| 欧美美女一区二区| 紧身裙女教师波多野结衣| 久久精品一区二区免费播放|