复制
收藏
提问
简洁
为以下SQL创建一个全覆盖索引(即索引列包含了目标SQL中用到的全部列)时,哪种列的顺序会使该索引对该SQL有最好的访问效率:Select a,b from t where c =:1 order by d。A、a,b,c,d B.c,a,b,d C.d,a,b,c D.c,d,a,b
0秒前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
创建全覆盖索引时,列的顺序对访问效率有影响。最佳顺序应根据索引的使用方式和查询条件来确定。
索引列顺序的影响
- 查询条件列优先:索引中包含的列顺序应首先满足查询条件,即 WHERE 子句中的列
c
应放在索引的最前面。57 - 排序列次之:如果查询中包含 ORDER BY 子句,排序列
d
应紧随查询条件列之后,以优化排序操作。7 - 选择列表中的列:SELECT 子句中列出的列
a
和b
应包含在索引中,但它们的位置可以根据实际情况调整,通常放在排序列之后。
最佳索引列顺序
根据上述要点,对于 SQL 语句 Select a,b from t where c =:1 order by d
,最佳索引列顺序应为:
- C、D、A、B:即
c, d, a, b
。
这种顺序首先满足查询条件,然后优化排序操作,最后包含 SELECT 子句中的列,从而提供最高的访问效率。因此,正确答案是 D、c,d,a,b。89
你觉得结果怎么样?