MYSQL 索引下推

MYSQL 索引下推(Index Condition)

背景介绍

官方文档链接

官方定义

Index Condition Pushdown (ICP) is an optimization for the case where MySQL retrieves rows from a table using an index. Without ICP, the storage engine traverses the index to locate rows in the base table and returns them to the MySQL server which evaluates the WHERE condition for the rows. With ICP enabled, and if parts of the WHERE condition can be evaluated by using only columns from the index, the MySQL server pushes this part of the WHERE condition down to the storage engine. The storage engine then evaluates the pushed index condition by using the index entry and only if this is satisfied is the row read from the table. ICP can reduce the number of times the storage engine must access the base table and the number of times the MySQL server must access the storage engine.

什么是索引下推

抓住第一句话的关键词,表述出来就是MYSQL使用索引进行回表的优化

索引下推有什么用

既然是一种优化肯定是为了提升Mysql的性能,具体的原理就是在Mysql存储引擎就使用索引中的列进行过滤,减少回表的次数

举个例子

一个基本的用户表,有id,姓名、性别,(name,sex)作为联合索引

假设我们需要查找姓刘的男性,会有一条这样的SQL

select * from user where name like '王%' and sex = '1'

没有索引下推的时候

50d213badeff9a90273d2d98c5bcff12

当有了索引下推

96d9edcc30740b30c9932133c13c38e3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL索引(Index Condition Pushdown,简称ICP)是一种优化技术,用于减少查询的数据访问量和提高查询性能。它通过将索引条件下到存储引擎层执行,减少存储引擎返回的数据量,从而减少了不必要的IO操作和网络传输。 在MySQL中,当执行包含索引的查询时,通常会先使用索引找到匹配的行,然后再根据WHERE条件进行过滤。而索引则是在索引查找的过程中,将WHERE条件下到存储引擎层执行,减少了不符合条件的行返回到MySQL服务层的情况。 通过使用索引,可以减少存储引擎返回给MySQL服务层的数据量,从而提高查询性能。特别是对于大型表和复杂的查询语句,索引可以显著减少IO操作和网络传输,提高查询效率。 需要注意的是,索引并不适用于所有类型的查询,它主要适用于范围查询(如大于、小于、区间查询等)和排序操作。对于其他类型的查询,索引可能无法发挥作用或者带来性能下降。 为了启用索引功能,需要满足以下条件: 1. MySQL版本必须是5.6或更高版本。 2. 表使用的存储引擎必须支持索引,如InnoDB。 3. 查询需要使用到索引。 4. WHERE条件需要满足索引的要求。 总之,索引MySQL中的一项优化技术,通过将WHERE条件下到存储引擎层执行,可以减少不必要的数据访问和提高查询性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值