索引是一个利于查找的数据结构,而且还缓存在内存中,用索引查找出物理行地址非常快,但是从物理行中提取出(回行)需要的字段值,就会慢一点了。查询索引是快的,利用索引从物理磁盘中找到要的所有数据(回行)是慢的。
如上图,索引是usename,如果select的字段有id,username,age..那么得去物理行提取数据;如果select id 那么索引里就存着呢,不用去找啦直接就满足了。总结:查询的内容正好在索引中就有,不需要回行查找,这种情况叫做索引覆盖![]()
如果出现了上边 Using index 部分,就表示使用了覆盖索引。innodb引擎在覆盖索引上面更进一步:innodb引擎的所有储存了主键ID,事务ID,回滚指针,非主键ID,他的查询就会是非主键ID也可覆盖来取得主键ID。
Mysql-索引覆盖
最新推荐文章于 2024-06-05 12:04:15 发布