支持。索引扫描(Index Scan)是支持联合索引(复合索引 / Composite Index)的。
下面分几点说明:
联合索引是在多个列上建立的索引,例如:
CREATE INDEX idx_user ON user (age, name, city);
这是一个在 (age, name, city) 三列上的联合索引。
在执行查询时,如果 WHERE 条件、ORDER BY、JOIN 条件等能用上联合索引的前缀列,数据库就可以使用索引扫描,例如:
✅ 能使用索引扫描:
WHERE age = 20
WHERE age = 20 AND name = 'Tom'
WHERE age = 20 AND name = 'Tom' AND city = 'Beijing'
❌ 无法使用(或只能部分使用)索引:
WHERE name = 'Tom' -- 未使用最左前缀
WHERE city = 'Beijing'
数据库通常使用**最左匹配(Leftmost Prefix)**规则:
示例:
(age, name, city)
可用:
不可用:
age > 20)联合索引更容易实现 Index Only Scan。
✅ 索引扫描完全支持联合索引
✅ 是否使用取决于最左前缀匹配
✅ 合理设计联合索引可显著提升性能
如果你有具体数据库(MySQL / PostgreSQL / Oracle)或具体 SQL,我可以帮你分析是否走了联合索引。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。