新聞中心
本篇內(nèi)容介紹了“如何檢查SQL語句是否用到索引”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)長期為成百上千客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為諸暨企業(yè)提供專業(yè)的網(wǎng)站設計制作、成都網(wǎng)站制作,諸暨網(wǎng)站改版等技術服務。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
如何檢查SQL語句是否用到索引?
使用“EXPLAIN sql語句”進行調(diào)試,查看possible_keys或key
possible_keys:可能應用的索引
key:實際使用的索引
哪些情況下索引會被忽略
前導LIKE 語句
前導模糊查詢不生效 (如 like '%XX'或者like '%XX%')
//生效
explain select * from cartoon where `name` like '家里來了位道長大人%'
//不生效
explain select * from cartoon where `name` like '%555%'
“or“ 條件
“in“ 條件
“<>“ 不等于判斷
“between“ 范圍條件,可使用 where xx> 1 and xx<3代替
IS NULL 或 IS NOT NULL,判斷為空
不能在索引上做任何操作(計算、函數(shù)、自動/手動類型轉(zhuǎn)換)
MySQL索引類型
索引類型
1. 普通索引 (index)
2. 唯一索引 (unique)
在普通索引的基礎上,會進行排除重復值
3. 主鍵索引 (primary key)
和唯一索引的區(qū)別在于一個表里只能有一個主鍵索引,但是唯一索引可以有多個。
4. 組合索引
ALTER TABLE
table_nameADD INDEX index_name (column1,column2,column3)
5. 全文索引 (fulltext)
普通索引/唯一索引/主鍵索引 哪個速度更快?
速度是一樣的快,因為三者都是采用btree二叉樹算法進行查找。
2種索引算法
BTREE算法
Innodb和MyISAM默認的索引是BTREE索引
采用二叉樹算法,左邊的樹枝小于根節(jié)點關鍵詞,右邊大于根節(jié)點,兩邊的樹的深度不大于1,從而降低時間復雜度。
HASH算法
Mermory默認的索引是Hash索引
Hash索引只能用于HASH值比較,例如=,<> 操作符,不像BTREE索引需要從根節(jié)點到枝節(jié)點,最后才能訪問到頁節(jié)點這樣多次IO訪問,所以檢索效率遠高于BTREE索引。
為什么不默認采用HASH索引呢?
HASH只能用在=和<>上,所以功能受限,所以默認采用BTREE。
“如何檢查SQL語句是否用到索引”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
網(wǎng)站題目:如何檢查SQL語句是否用到索引
分享地址:http://www.dlmjj.cn/article/giejhh.html


咨詢
建站咨詢

