MAC-exists,表字段要不要建索引
在使用 EXISTS
子查询时,合理建立索引可以显著提升性能,尤其是当两个表的关联字段需要频
繁匹配时。以下是针对 两表关联字段 的索引设计策略和具体示例:
1. 核心原则
- 索引目标字段:为
EXISTS
子查询中 关联条件(即连接字段)建立索引。 - 覆盖索引:如果子查询需要额外字段过滤,将这些字段包含在索引中。
- 选择性高的字段优先:选择性高的字段(唯一值多)放在索引左侧。
2. 典型场景与索引方案
场景 1:基本 EXISTS 查询
- 查询示例:
SELECT * FROM employees e1 WHERE EXISTS (SELECT 1FROM departments e2WHERE e2.department_id = e1.department_id -- 关联字段 );
- 索引方案