第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mysql索引失效的問題

mysql索引失效的問題

慕粉4241372 2017-06-17 10:54:13
如圖,這是一個含3個列的復合索引,使用到1.2.3個列的key_len分別是74、78、140圖中最后一條搜索中,由于中間列使用了范圍搜索,導致后面的索引失效,key_len是78,也就是最后一個列的索引沒用上。但我的問題是,為什么ref顯示的是NULL? 既然有一個列生效,那應該顯示一個const不是嗎?
查看完整描述

1 回答

?
劉先森的貓

TA貢獻7條經驗 獲得超8個贊

這是一個好問題.

在第四次的explain sql時,注意看一個與前三次不同的細節(jié).

如圖,我用藍色標出來的部分.

http://img1.sycdn.imooc.com//594a203e000163af12270124.jpg

type這一列,從ref變成了range.

先來回顧下type的作用.

????它顯示了連接使用了哪種類別,有無使用索引.

????從最好到最差的連接類型為: const > eq_reg > ref > range > indexhe > ALL

再來看看ref這一列的作用.

? ? 它顯示使用哪個列或常數(shù)與key一起從表中選擇行。?

在第一條到第三條sql時,Mysql查詢優(yōu)化器在比較 ref & range 的代價的時候,ref 的代價更小,所以選擇的是ref.

在第四條sql時,ref 與 range 使用的是相同的索引,ref key 的使用的長度小于 range 的長度,則優(yōu)先使用 range。


另外:

索引并沒有失效,第四條sql依然使用到了復合索引.







查看完整回答
2 反對 回復 2017-06-21
  • 1 回答
  • 1 關注
  • 1417 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號