直接用索引定位(Index Lookup)索引条件推送(Index Condition Pushdown, ICP)
mysql,where A in ('xxx','xxx')in list 查询,索引A ,是会用到索引定位还是ICP?
索引直接定位。 如果你的条件里还多了and B = ‘xxx’,然后B列没被索引覆盖,那时候会用到ICP,在存储引擎层把B = 'xxx’过滤出来。
你问题里这个直接就能定位。
如果 A 列上有索引,MySQL 会 使用索引定位(Index Lookup)来快速查找满足 IN 条件的记录。 索引条件推送(ICP)不会在这种简单的 IN 查询中发挥作用,除非查询中还有更多复杂的条件,涉及其他列的过滤条件。
ICP是当你有除了索引以外的筛选条件的时候,innodb层对非索引条件进行筛选。