可以选择 n 行排序依据然后返回 m 行的 SQL 查询

标签 sql sql-server database

我需要创建可以选择的 SQL 查询,假设按一列排序 1000 行,然后仅返回 100 行。

为什么?我的查询可以选择 ~1 000 000 行(或更多),我想先取 1000 行,从这 1000 行中只显示 100 行具有最佳相关性。我担心这样的选择的性能,所以我想介绍这第一步(只需要 1000 行)。我知道我可能会错过相关性更好的文档,但在这种情况下没关系。

最佳答案

不选前1000个有关系吗?即如果你只是使用...

Select top 100 *
From table
Order by column

您会得到相同的结果,并且正如其他地方所指出的那样,您不太可能降低性能而不是提高性能。

如果你想优化这个查询然后确保在上有一个索引然后SQL服务器将能够优化记录的检索和排序给你你想要的.

关于可以选择 n 行排序依据然后返回 m 行的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4857837/

相关文章:

mysql - 有效地只向用户显示他之前没有看到的项目(mysql)

sql - PostgreSQL 约束 - 只有一行可以设置标志

sql - 比较同一个sql表中两行的数据

sql-server - 使用带有 NVarchar(50) 与 NVarchar(255) 列的索引?

sql-server - TSQL - 选择计数较高的行,当计数相同时,选择 id 值较高的行

mysql - 将多列转置为行 - MySQL

sql-server - 选择/插入更新插入的版本 : is there a design pattern for high concurrency?

php - 使用 PHP 进行 MySQL 搜索

c# - 通过连接字符串连接到远程数据库

sql - 根据另一个表的计数创建包含多个行实例的表