-
Notifications
You must be signed in to change notification settings - Fork 46.1k
Open
Description
在阅读咱们的 MySQL 索引文章时,我发现关于“索引下推(ICP)”的一个例子可能存在一点逻辑冲突,想探讨一下。
查询 zipcode 为 431200 且生日在 3 月的用户
birthdate 字段使用函数索引失效
SELECT * FROM user WHERE zipcode = '431200' AND MONTH(birthdate) = 3;
这段在原文中的表述是:
“有了索引下推之后,存储引擎会在使用 zipcode 字段索引查找 zipcode = '431200' 的用户时,同时判断 MONTH(birthdate) = 3。这样,只有同时满足条件的记录才会被返回,减少了回表次数。”
首先,函数是server层运行的,存储引擎无法使用索引下推来继续查找。不知道我的理解是否准确?希望能一起探讨,感谢开源贡献!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels