扫码阅读
手机扫码阅读

其实 MySQL 中的 like 关键字也能用索引!

44 2024-11-05

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:其实 MySQL 中的 like 关键字也能用索引!
文章来源:
江南一点雨
扫码关注公众号
索引使用规则摘要

索引使用规则摘要

本文由松哥继续分享关于MySQL索引的使用规则。首先重申,索引的使用需要根据具体项目情况决定,不能单纯为优化SQL而忽略业务需求。今天的分享主要围绕like语句的使用和索引的最左匹配原则。

1. 最左匹配原则

在MySQL中,复合索引可以根据“最左匹配”原则进行记录的定位,这适用于匹配复合索引前几个字段,或者第一个字段的前几个字符。例如,一个以username和age组成的复合索引能够支持单独通过username进行查询。此外,使用like 'j%'能够利用索引进行范围扫描。然而,like '%j'或like '%j%'则不符合最左匹配原则,通常无法有效使用索引。

2. 辅助案例

为了解释最左匹配原则,松哥提供了一个辅助案例。当查询条件是复合索引中不是最左边的字段时(例如age),索引将无法被有效利用,因为这些字段在索引中是无序的。这就导致需要扫描全部索引记录,进行全索引扫描,这在执行计划中的type为index时可以看出。如果查询的字段不包含在索引中,如select * from user2 where age=99,将不会使用索引,而是进行全表扫描。

3. 小结

通过分析两个案例,松哥强调了最左匹配原则在MySQL索引中的重要性,并解释了索引的存储结构。这有助于更好地理解和利用索引,从而提高查询效率。

想要了解更多内容?

查看原文:其实 MySQL 中的 like 关键字也能用索引!
文章来源:
江南一点雨
扫码关注公众号