MySQL 知识-- ICP 优化

本文最后更新于:10 天前

Index Condition Pushdown (ICP)

  • 目的: 在取出索引的同时,提前判断 where 条件,从而提前过滤一部分不符合条件的记录

  • 适用条件:explain 的 type 为 range,ref,eq_ref,ref_or_null,而 Extra 可以看到 using index condition

  • 好处: 减少上层 SQL 层对记录的索取,从而提升数据库的整体性能

  • 工作方式:

    如果没有 ICP,在进行索引查询时,首先会根据索引查找记录,然后再根据 where 条件来过滤

    而使用 ICP 之后,存储引擎在取出索引的同时,会判断是否可以进行 where 条件过滤,也就是将 where 部分过滤操作放到了存储引擎层,在某些查询下,可以大大减少上层 SQL 层对记录的索取,从而提高数据库的整体性能