LIKE ‘%xxx%’ 和 LIKE ‘xxx%’ 的索引影响分析
一、基础概念解析
1.1 LIKE操作符的工作原理
LIKE是SQL中用于模式匹配的操作符,支持两种通配符:
%
:匹配任意数量字符(包括零个字符)_
:匹配单个字符
go专栏:https://duoke360.com/tutorial/path/golang
1.2 数据库索引基本类型
在讨论LIKE的索引影响前,需要了解常见的索引类型:
- B-Tree索引:标准索引结构,适合等值查询和范围查询
- 哈希索引:仅适合等值查询
- 全文索引:专门为文本搜索设计的特殊索引
关键结论:标准B-Tree索引对LIKE查询的支持取决于通配符的位置
二、不同LIKE模式的索引使用情况
2.1 LIKE ‘xxx%’ 情况分析
这种模式称为前缀匹配,数据库可以有效地利用索引:
-- 可以使用索引的情况
SELECT * FROM users WHERE name LIKE 'John%';
索引使用原理:
- 索引按照字典序存储
- 可以快速定位到’John’开头的记录
- 沿着索引叶子节点顺序扫描直到不匹配的记录
关键结论:
LIKE 'xxx%'
可以高效利用标准B-Tree索引,性能接近等值查询