a有索引 b有索引

ab有联合索引

a有索引 b没有索引

https://www.nowcoder.com/share/jump/34126941734567633558

chatgpt

对于查询语句 SELECT * FROM A WHERE a = 1 OR b = 1,查询的效率会受到索引的影响。以下是每种索引配置下的执行方式和性能分析:

1. a有索引,b有索引

执行逻辑

• 数据库会分别使用 a 的索引和 b 的索引。

• 然后将两部分的结果合并(OR 操作),去重后返回最终结果。

性能

• 这种情况下,优化器可能会扫描两次索引(一次是基于 a,一次是基于 b),然后合并。

• 如果匹配的数据量较大,合并和去重的开销可能较高。

2. ab有联合索引

执行逻辑

• 联合索引一般是按照 (a, b) 的顺序存储的。