日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql版本的索引类型_【mysql】索引 回表 覆盖索引 索引下推

發布時間:2025/5/22 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql版本的索引类型_【mysql】索引 回表 覆盖索引 索引下推 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

索引類型

索引類型分為主鍵索引和非主鍵索引。(一定要牢記,是怎么存儲數據的)

主鍵索引的葉子節點存的是整行數據。在 InnoDB 里,主鍵索引也被稱為聚簇索引(clustered index)。

非主鍵索引的葉子節點內容是主鍵的值。在 InnoDB 里,非主鍵索引也被稱為二級索引(secondary index)。

聚簇索引

聚簇索引默認是主鍵,如果表中沒有定義主鍵,InnoDB 會選擇一個唯一的非空索引代替。如果沒有這樣的索引,InnoDB 會隱式定義一個主鍵來作為聚簇索引。

因為B+TREE的原因,最好使用連續的整數字段,更好確定查找訪問范圍

回表

根據上面的索引結構說明,主鍵索引和普通索引的查詢區別

如果語句是 select * from T where ID=500,即主鍵查詢方式,則只需要搜索 ID 這棵 B+ 樹;

如果語句是 select * from T where k=5,即普通索引查詢方式,則需要先搜索 k 索引樹,得到 ID 的值為 500,再到 ID 索引樹搜索一次。這個過程稱為回表。

覆蓋索引

如果執行的語句是 select ID from T where k between 3 and 5,這時只需要查 ID 的值,而 ID 的值已經在 k 索引樹上了,因此可以直接提供查詢結果,不需要回表。也就是說,在這個查詢里面,索引 k 已經“覆蓋了”我們的查詢需求,我們稱為覆蓋索引。

索引下推

索引下推是MySQL5.6版本推出的優化手段

默認是開啟的,可以通過下面命令關閉

SET optimizer_switch = ‘index_condition_pushdown=off‘;

假如有一下SQL,不通的執行過程,如下圖表示

index(name,age)

mysql> select * from tuser where name like ‘張%‘ and age=10 and ismale=1;

可以看到,無索引下推是,每次都需要回表查詢,而下推的是在先過濾好結果集,回表拿select * 的數據

無索引下推

有索引下推

總結

以上是生活随笔為你收集整理的mysql版本的索引类型_【mysql】索引 回表 覆盖索引 索引下推的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。