gpt4 book ai didi

sql-server - 选择中使用了哪个索引,为什么?

转载 作者:行者123 更新时间:2023-12-04 01:08:09 25 4
gpt4 key购买 nike

我有包含以下列邮政编码的表格:

id - PRIMARY KEY
code - NONCLUSTERED INDEX
city

当我执行查询时

SELECT TOP 10 * FROM ZIPCodes

我得到的结果按 id 列排序。但是当我将查询更改为:

SELECT TOP 10 id FROM ZIPCodes

我得到的结果按 code 列排序。同样,当我将查询更改为:

SELECT TOP 10 code FROM ZIPCodes

我再次得到按 code 列排序的结果。最后,当我更改为:

SELECT TOP 10 id,code FROM ZIPCodes

我得到的结果按 id 列排序。

我的问题在问题的标题中。我知道查询中使用了哪些索引,但我的问题是,为什么使用这些索引?我的第二个查询(SELECT TOP 10 id FROM ZIPCodes)如果使用聚类索引会不会更快?查询引擎如何选择使用哪个索引?

最佳答案

由于您不要求一组特定的数据,因此没有“最佳”方式来选择要返回的行。提示:没有 ORDER BY 的 TOP 是荒谬的。

我假设仅索引数据可以满足的查询使用该索引,而“按 id 排序”的数据根本不使用索引。您的元组恰好按特定顺序存储,因为表是按 id 聚类的。

关于sql-server - 选择中使用了哪个索引,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2919541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com