暂无图片
mysql in 查询
我来答
分享
暂无图片 匿名用户
mysql in 查询

直接用索引定位(Index Lookup)
索引条件推送(Index Condition Pushdown, ICP)

mysql,where A in ('xxx','xxx')
in list 查询,索引A ,是会用到索引定位还是ICP?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
龙舌兰地落🌏

索引直接定位。
如果你的条件里还多了and B = ‘xxx’,然后B列没被索引覆盖,那时候会用到ICP,在存储引擎层把B = 'xxx’过滤出来。

你问题里这个直接就能定位。

暂无图片 评论
暂无图片 有用 2
小草

如果 A 列上有索引,MySQL 会 使用索引定位(Index Lookup)来快速查找满足 IN 条件的记录。
索引条件推送(ICP)不会在这种简单的 IN 查询中发挥作用,除非查询中还有更多复杂的条件,涉及其他列的过滤条件。

暂无图片 评论
暂无图片 有用 2
张sir

ICP是当你有除了索引以外的筛选条件的时候,innodb层对非索引条件进行筛选。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏