<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
InnoDB索引分為兩大類,一類是聚集索引(Clustered Index),一類是非聚集索引(Secondary Index)
聚集索引(聚簇索引):葉子節點中存的是整行資料,找到索引也就找到了資料,索引即資料,表中行的物理順序與鍵值的邏輯(索引)順序相同,一個表只能包含一個聚集索引。因為索引(目錄)只能按照一種方法進行排序。
非聚集索引(普通索引、非聚簇索引、二級索引):非聚集索引的btree葉子節點中儲存的是當行資料的PK(主鍵)。例如MYISAM通過key_buffer把索引先快取到記憶體中,當需要存取資料時(通過索引存取資料),在記憶體中直接搜尋索引,然後通過索引找到磁碟相應資料,這也就是為什麼索引不在key buffer命中時,速度慢的原因。
為什麼非主鍵索引結構葉子結點儲存的是主鍵值?
減少了出現行移動或者資料頁分裂時二級索引的維護工作(當資料需要更新的時候,二級索引不需要修改,只需要修改聚簇索引,一個表只能有一個聚簇索引,其他的都是二級索引,這樣只需要修改聚簇索引就可以了,不需要重新構建二級索引)
在使用非聚集索引時,為了取到具體資料,則需要通過PK回到聚集索引裡去查詢資料。著就叫回表查詢。掃描了2次索引樹。所以效率相對較低。
索引覆蓋就是解決回表查詢的一種方案。見名知意,就是查詢的所有列均被所使用的索引列覆蓋(可以是單列索引也可以是聯合索引,通常是聯合索引,單列索引很難覆蓋查詢的所有列)。
因為索引中已經包含了要查詢的欄位的值,因此查詢的時候直接返回索引中的欄位值就可以了,不需要再到表中查詢,避免了對主鍵索引的二次查詢,也就提高了查詢的效率。
id為聚集索引,name為非聚集索引:
select name, age from t where name = 'lcc';
就需要回表查詢
索引覆蓋:
在SQL中只查詢name欄位。這樣name的索引就覆蓋到了所有的查詢列。
select name from t where name = 'lcc';
將name的索引修改為聯合索引(name, age ),之後還是執行select name, age from t where name = 'lcc'。這樣也覆蓋到了所有的查詢列。
因為覆蓋索引必須要儲存索引的列值,而雜湊索引、空間索引和全文索引等都不儲存索引列值,從而只有使用B-Tree索引的資料可以做覆蓋索引。
進行索引覆蓋查詢時,在explain(執行計劃)的Extra列可以看到【Using Index】的資訊。
索引覆蓋的優點
哪些場景適合使用索引覆蓋來優化SQL
哪些情況下不要建索引
索引下推優化是 MySQL 5.6 引入的, 可以在索引遍歷過程中,對索引中包含的欄位先做判斷,直接過濾掉不滿足條件的記錄,減少回表次數
建立聯合索引:
KEY `username` (`name`,`age`) )
執行:
select * from user2 where name like 'j%' and age=99;
上面的查詢sql符合索引的最左字首原則,所以將會用到 username 索引
5.5中上面這個 SQL 的執行流程是這樣的:
5.6中上面這個 SQL 的執行流程是這樣的:
到此這篇關於MySQL回表查詢與索引覆蓋的區別的文章就介紹到這了,更多相關MySQL回表查詢與索引覆蓋內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45