联合索引:最左前缀原则

一、联合索引基础 1.1 什么是联合索引 -- 单列索引 CREATE INDEX idx_a ON table(a); CREATE INDEX idx_b ON table(b); -- 联合索引(多列组合) CREATE INDEX idx_a_b ON table(a, b); CREATE INDEX idx_a_b_c ON table(a, b, c); 1.2 存储结构 联合索引 idx_a_b_c(a, b, c)的B+树: [(1,1,1), (1,1,2), (1,2,1), (2,1,1)] ↓ 先按a排序 [(1,1,1), (1,1,2), (1,2,1)] ← a相同 ↓ 再按b排序 [(1,1,1), (1,1,2)] ← a、b相同 ↓ 最后按c排序 二、最左前缀原则 2.1 核心规则 CREATE INDEX idx_a_b_c ON table(a, b, c); -- ✅ 可以使用索引 WHERE a = 1; -- 使用(a) WHERE a = 1 AND b = 2; -- 使用(a,b) WHERE a = 1 AND b = 2 AND c = 3; -- 使用(a,b,c) WHERE a = 1 AND c = 3; -- 使用(a),c失效 -- ❌ 不能使用索引 WHERE b = 2; -- 缺少a WHERE c = 3; -- 缺少a WHERE b = 2 AND c = 3; -- 缺少a 2.2 原理 联合索引按从左到右的顺序排序: ...

2025-11-20 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...