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

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

Innodb覆蓋索引的幾個疑問

Innodb覆蓋索引的幾個疑問

慕尼黑8549860 2019-05-20 10:01:44
對InnoDB覆蓋索引的疑問首先,我對覆蓋索引的了解是,如果創(chuàng)建了二級索引后,要想做到覆蓋索引,那么你select的列就要被你的索引所覆蓋比如,當(dāng)我創(chuàng)建一個二級索引idx_name_age(name,age)對selectnamefromuserwherename="Jhon";語句,自然就可以做到覆蓋索引這樣就不用再回表走聚簇索引了但是當(dāng)我selectidfromuserwhereid=1;時,這個用到了主鍵索引,也就是會直接走聚簇索引,既然走聚簇索引的話,B+Tree的葉子節(jié)點(diǎn)是包含所有列的,那我認(rèn)為select*fromuserwhereid=1;也是一樣的但explain的分析結(jié)果發(fā)現(xiàn)selectidfromuserwhereid=1;是主鍵索引,并且做到了覆蓋索引但是select*fromuserwhereid=1;雖然是主鍵索引,但卻不是覆蓋索引,這是為啥?
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個贊

可以這樣理解吧,主鍵索引,那么就是按照主鍵排序,組成B+樹,例如你的id,那么主鍵索引的索引鍵就是id,而剩余的行數(shù)據(jù)只是跟在索引鍵后面而形成聚簇表,主鍵索引并沒有對除主鍵以外的數(shù)據(jù)進(jìn)行索引;那么,從覆蓋索引的概念:select語句所有要查詢的列都必須是索引鍵,也就是說對于主鍵索引,覆蓋索引應(yīng)該是只查主鍵,這樣主鍵索引才起到“覆蓋”的作用;而select*是需要把整行數(shù)據(jù)都查出來,并不只是查詢主鍵了。
                            
查看完整回答
反對 回復(fù) 2019-05-20
  • 1 回答
  • 0 關(guān)注
  • 641 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號