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索引,性能接近等值查詢