sql优化之联合索引
文章目录
- 1、是什么
- 2、使用注意事项
1、是什么
联合索引(Composite Index,也叫复合索引、组合索引)是指在数据库表的多个字段上共同创建的索引,而非仅基于单个字段。它的核心特点是 “将多个字段组合成一个索引键”,按照字段的创建顺序在 B+ 树(主流数据库的索引结构)中排序存储,从而优化多字段组合查询的效率。
2、使用注意事项
- 尽量避免部分索引
- 不要遗漏join的on使用的字段
jion的on条件使用的字段和被驱动表的筛选条件,构成一个联合索引的话,这些筛选条件才能使用索引,否则使用前缀匹配原则,如:
select * from a jion b on a.id=b.id jion c on b.id=c.bid where a.aa=a and b.bb=b and c.cc=c
索引应该这么建-- 表a:覆盖过滤aa和关联id CREATE INDEX idx_a_aa_id ON a(aa, id);-- 表b:覆盖关联id和过滤bb(若id是主键,可简化为CREATE INDEX idx_b_bb ON b(bb)) CREATE INDEX idx_b_id_bb ON b(bb);-- 表c:覆盖关联bid和过滤cc(若id是主键,可简化为CREATE INDEX idx_c_cc ON c(cc)) CREATE INDEX idx_c_id_cc ON c(bid, cc);