索引下推:
索引下推(Index Condition Pushdown)是数据库查询优化的一种技术,通常用于处理包含过滤条件的查询语句。它的原理是在使用索引进行查询时,将查询的过滤条件也应用到索引查找过程中,以减少需要读取和处理的数据量,从而提高查询性能。
索引下推是MySQL5.6推出来的一个查询优化方案,主要的目的是减少数据库中不必要的数据读取和计算。
索引下推的原理是尽可能把查寻条件推到索引层面进行过滤,减少从磁盘读取的数据量。
索引覆盖:
索引覆盖(Index Covering)是指一个查询可以完全通过索引来执行,而无需访问实际的数据行。在数据库中,通常查询语句包含了一系列的条件,这些条件用于筛选出符合特定条件的数据行。如果这些条件能够通过索引直接定位到符合条件的数据行,而无需访问实际的数据页,那么就称为索引覆盖。
比如我们有这样一条SQL语句:
select name,age,level
from user
where name = "AAA" and age 17
那么我们就可以把目标查询内容设置成为索引
key idx_nal (name,age,level) using btree
那么这样的话,我们在搜索的时候,只需要通过索引就能够拿到我们需要的全部数据了。这样就避免了回表。
索引覆盖注意事项:
1.如果一个索引包含了需要查询的所有字段,那么这个索引就是覆盖索引。
2.MySQL 只能使用B+Tree索引做覆盖索引,因为只有B+树能存储索引列值。
...