mysql索引回表

2021-09-24 21:57:56 字數 744 閱讀 2269

**:

先索引掃瞄,再通過id去取索引中未能提供的資料,即為回表。

建表mysql> create table t(

id int primary key,

k int not null,

name varchar(16),

index (k))engine=innodb;

如果語句是 select * from t where id=500,即主鍵查詢方式,則只需要搜尋 id 這棵 b+ 樹;

mysql> select * from t where id=500;

±----±–±------+

| id | k | name |

±----±–±------+

| 500 | 5 | name5 |

±----±–±------+

1 row in set (0.00 sec)

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

mysql> select * from t where k=5;

±----±–±------+

| id | k | name |

±----±–±------+

| 500 | 5 | name5 |

±----±–±------+

1 row in set (0.00 sec)

mysql索引回表

mysql索引回表概念 1 先通過普通索引 普通索引,唯一索引,組合索引 定位到主鍵值 2 在通過聚集索引定位到行記錄 這就是所謂的回表查詢,先定位主鍵值,再定位行記錄,然後根據行記錄數主鍵id掃瞄索引數,查詢出資料,它的效能較掃一遍索引樹更低 舉例說明 當有乙個表有四個字段,分別是id name,...

mysql普通索引回表 MySQL索引

基礎 什麼是索引 索引是關聯式資料庫中對某一列或多個列的值進行預排序的資料結構。索引的作用 索引的是用於資料查詢的一種資料結構,常見的用於資料查詢的資料結構,有有序陣列 二叉查詢樹 雜湊表等,這些資料結構都是查詢速度較快的。面臨的問題 索引設計面臨如下幾個問題 如何更快的查詢到資料 是否支援範圍查詢...

Mysql索引 回表 索引覆蓋

1.先說什麼是索引?索引是一種資料結構 不同引擎對索引的實現方式不同,innodb採用b 樹作為索引結構。2.聚簇索引 非聚簇索引索引可分為聚簇索引和非聚簇索引兩種。聚簇索引 clustered index 聚簇索引的資料的物理存放順序與索引順序是一致的。非聚簇索引 二級索引 secondary i...