CosmosDB:SELECT TOP如何工作?

poo*_*kie 5 sql azure-cosmosdb

我有一个450GB的数据库...拥有数百万条记录。

这是查询示例:

SELECT TOP 1 * FROM c WHERE c.type='water';
Run Code Online (Sandbox Code Playgroud)

为了加快查询速度,我考虑只采用第一个查询,但是我们注意到,尽管数据库中的第一个记录符合我们的约束条件,但查询仍然需要花费相当长的时间。

所以,我的问题是,SELECT TOP 1真正的工作原理是什么?可以:

A)选择所有记录,然后仅返回第一个(顶部) type='water'

B)返回遇到的第一个记录type='water'

小智 5

试试这一行,注意偏移限制:

SELECT * FROM c WHERE c.type='water' OFFSET 0 LIMIT 1

有关偏移限制的更多信息:https :
//docs.microsoft.com/en-us/azure/cosmos-db/sql-query-offset-limit


Jac*_*001 1

假设您没有对结果进行排序(您查询的结果没有排序),那么TOP 1一旦找到结果就会返回第一个结果。这应该会结束查询。