校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 你的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語句為什么沒索引詳解的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产不卡视频在线观看| 欧美视频一区二区在线观看| 欧美大肚乱孕交hd孕妇| 亚洲综合在线观看视频| 91亚洲精华国产精华精华液| 亚洲国产精品黑人久久久| 成人一区在线看| 亚洲欧洲国产日韩| 欧美亚州韩日在线看免费版国语版| 国产精品二区一区二区aⅴ污介绍| 91久久线看在观草草青青| 亚洲高清一区二区三区| 欧美精品一区二区久久婷婷| 91视视频在线直接观看在线看网页在线看| 精品福利一二区| 国产成人综合亚洲网站| 国产福利精品导航| 日韩你懂的在线观看| 久久99热99| 久久99精品久久久| 欧美理论片在线| 久久国产生活片100| 秋霞电影一区二区| 日本在线播放一区二区三区| 日韩av一级电影| 加勒比av一区二区| 粉嫩av亚洲一区二区图片| 国产乱子轮精品视频| thepron国产精品| 91久久国产最好的精华液| 欧洲中文字幕精品| 欧美电影免费观看高清完整版在| 久久精品一级爱片| 亚洲区小说区图片区qvod| 视频一区中文字幕国产| 国产 日韩 欧美大片| 欧美羞羞免费网站| 日本一区二区三区视频视频| 一二三四社区欧美黄| 国产一区二区三区av电影| 色成年激情久久综合| 精品国产伦一区二区三区观看体验| 国产精品久久久久一区二区三区| 夜夜嗨av一区二区三区网页 | 亚洲一区在线看| 国产精品综合二区| 欧美日韩国产高清一区| 中文字幕av在线一区二区三区| 午夜av一区二区| 91在线精品秘密一区二区| 精品日韩一区二区三区免费视频| 日韩一区中文字幕| 国产精品456露脸| 91精品国产91综合久久蜜臀| 国产·精品毛片| 久久先锋影音av| 国产精品自拍三区| 亚洲精品一区二区三区四区高清| 亚洲国产综合人成综合网站| 色婷婷久久99综合精品jk白丝 | 26uuu欧美日本| 日韩精品国产精品| 欧美日韩国产首页| 亚洲第一搞黄网站| 777久久久精品| 蜜臀av亚洲一区中文字幕| 欧美一区2区视频在线观看| 日日摸夜夜添夜夜添国产精品| 欧美日韩综合在线免费观看| 亚洲精品国产精华液| 欧美亚洲综合在线| 天天综合色天天| 精品国精品自拍自在线| 国产黄人亚洲片| 亚洲久草在线视频| 欧美日韩国产免费| 久久精品久久99精品久久| 337p日本欧洲亚洲大胆精品| 懂色av一区二区三区免费看| 亚洲丝袜另类动漫二区| 欧美日韩一区二区三区高清| 免费在线视频一区| 欧美激情在线一区二区三区| 91丝袜美女网| 奇米777欧美一区二区| 日本一区免费视频| 欧美性生活大片视频| 国产原创一区二区三区| 亚洲精品v日韩精品| 精品国产凹凸成av人导航| 色综合婷婷久久| 国产美女一区二区| 亚洲成人av电影| 国产精品久久久久久久裸模| 欧美乱妇20p| 日本电影欧美片| 成人国产精品免费网站| 日欧美一区二区| 亚洲人123区| 国产亚洲综合av| 日韩亚洲欧美在线| 在线视频欧美精品| thepron国产精品| 国产精品一区二区三区网站| 亚洲成年人影院| 亚洲高清不卡在线观看| 亚洲天堂成人在线观看| 国产精品免费视频观看| 久久久噜噜噜久久人人看| 欧美一区二区视频在线观看2022| 91久久一区二区| 中文字幕第一区综合| 久久奇米777| 精品国产免费人成在线观看| 日韩欧美在线不卡| 日韩欧美精品三级| 日韩精品一区国产麻豆| 日韩午夜小视频| 久久久精品人体av艺术| 中文字幕第一页久久| 国产精品成人免费在线| 亚洲精品第1页| 亚洲午夜久久久久久久久久久| 一区二区三区免费| 亚洲成av人片在www色猫咪| 午夜精品久久久久久久99水蜜桃| 婷婷国产在线综合| 国产在线视视频有精品| 成人免费电影视频| 91麻豆精品在线观看| 欧美日韩国产另类一区| 亚洲精品一区二区三区99| 中文字幕一区二区在线播放| 一区二区三区在线免费视频| 亚洲成av人片在线| 国产尤物一区二区在线| 91在线观看成人| 精品国产91乱码一区二区三区| 国产精品麻豆网站| 偷拍一区二区三区| 99久久综合狠狠综合久久| 亚洲国产精品精华液2区45| 亚洲成a人片在线不卡一二三区| 狂野欧美性猛交blacked| 91蜜桃免费观看视频| 精品久久久久久亚洲综合网| 亚洲欧洲精品天堂一级| 激情图片小说一区| 8x8x8国产精品| 一区二区高清在线| 国产成人av福利| 日韩欧美激情在线| 午夜欧美视频在线观看| 色悠久久久久综合欧美99| 国产三级精品三级| 麻豆精品国产传媒mv男同| 在线亚洲高清视频| 国产精品嫩草影院com| 国内外成人在线| 日韩久久久精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 91在线无精精品入口| 亚洲欧美aⅴ...| 色中色一区二区| 伊人一区二区三区| 色久综合一二码| 亚洲一区二区三区四区的| 91在线观看视频| 亚洲乱码日产精品bd| 91捆绑美女网站| 日日夜夜一区二区| 日韩欧美你懂的| 国产麻豆成人传媒免费观看| 久久九九国产精品| yourporn久久国产精品| 亚洲激情自拍偷拍| 911精品国产一区二区在线| 美女视频黄免费的久久| 国产欧美精品一区| 一本一本大道香蕉久在线精品 | 亚洲国产精品视频| 91精品国产综合久久精品图片 | 91在线播放网址| 日韩不卡一区二区三区| 欧美不卡视频一区| 成人av在线影院| 亚洲一区二区四区蜜桃| 欧美剧在线免费观看网站| 精品亚洲porn| 一区二区三区国产| 欧美三级电影一区| 国产呦萝稀缺另类资源| 1000部国产精品成人观看| 欧美日韩黄色一区二区| 国产成人午夜片在线观看高清观看| 国产精品国产三级国产| 日韩欧美一区二区久久婷婷| 国产999精品久久| 日韩中文字幕一区二区三区| 中文字幕av资源一区|