Skip to content

索引下推举例是否正确? #2797

@LovelySimon

Description

@LovelySimon

在阅读咱们的 MySQL 索引文章时,我发现关于“索引下推(ICP)”的一个例子可能存在一点逻辑冲突,想探讨一下。

查询 zipcode 为 431200 且生日在 3 月的用户
birthdate 字段使用函数索引失效
SELECT * FROM user WHERE zipcode = '431200' AND MONTH(birthdate) = 3;

这段在原文中的表述是:
“有了索引下推之后,存储引擎会在使用 zipcode 字段索引查找 zipcode = '431200' 的用户时,同时判断 MONTH(birthdate) = 3。这样,只有同时满足条件的记录才会被返回,减少了回表次数。”

首先,函数是server层运行的,存储引擎无法使用索引下推来继续查找。不知道我的理解是否准确?希望能一起探讨,感谢开源贡献!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions