mysql索引回表
先索引掃描,再通過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)也就是說,基于非主鍵索引的查詢需要多掃描一棵索引樹。因此,我們在應用中應該盡量使用主鍵查詢
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 丑女无敌4剧情介绍
- 下一篇: mysql5.7初始密码查看及密码重置