什么是覆盖索引和索引下推,用表格形式体现
时间: 2023-07-11 16:31:08 浏览: 67
好的,这里是覆盖索引和索引下推的表格形式体现。
假设有以下的表结构:
| id | name | age | gender | address |
| --- | --- | --- | --- | --- |
| 1 | Amy | 20 | Female | Beijing |
| 2 | Bob | 25 | Male | Shanghai|
| 3 | Cindy| 30 | Female | Guangzhou|
现在有以下的查询语句:
SELECT id, name, age FROM table WHERE gender='Female';
假设我们对 gender 列建立了非聚集索引,那么使用覆盖索引和索引下推的查询过程如下:
1. 覆盖索引查询:
直接在非聚集索引中查找符合条件的 id, name 和 age 列,无需回到原表中查询。
| id | name | age |
| --- | --- | --- |
| 1 | Amy | 20 |
| 3 | Cindy| 30 |
2. 索引下推查询:
在非聚集索引中查找符合条件的 id,再回到原表中查询 name 和 age 列。
| id | name | age |
| --- | --- | --- |
| 1 | Amy | 20 |
| 3 | Cindy| 30 |
下面是索引下推查询的过程,可以看到查询过程中需要回到原表中查询 name 和 age 列。
| id | name | age | gender |
| --- | --- | --- | --- |
| 1 | Amy | 20 | Female |
| 2 | Bob | 25 | Male |
| 3 | Cindy| 30 | Female|
| gender | id |
| --- | --- |
| Female | 1 |
| Female | 3 |