我在互联网上的某个地方读到使用 TOP
(MSSQL) 或 LIMIT
(MySQL) 在您的查询中是最佳实践。
他解释:如果数据库有数百万条记录,并且如果您使用限制,那么数据库算法在获取您在LIMIT
中请求的记录时将停止过滤其他数据。或TOP
。
我的问题是当您使用 WHERE
获取记录时条件为ID
,所以LIMIT
或TOP
确实有什么区别,因为数据库中会有唯一的 id。
PK is applied on that column
SELECT TOP 1 *
FROM TABLE_MASTER
WHERE ID = 10`
或者
SELECT *
FROM TABLE_MASTER
WHERE ID = 10 LIMIT 1`
如果这个问题已经问过,请给我链接,因为我无法找到 stackoverflow 线程。
最佳答案
如果您有一个 WHERE 子句通过唯一 id 选择特定行,则查询已经受到限制。它将仅扫描与特定值匹配的单行。在这种情况下,使用 TOP
或 LIMIT
没有任何好处。
如果有人对您说“功能 X 是最佳实践”,这并不意味着您应该使用功能 X,即使它没有什么区别。
如果 WHERE 子句中没有条件或需要匹配大量行的条件,则使用 TOP
或 LIMIT
非常有用。您可以限制行的数量,而不是返回不需要的数千(甚至数百万)行。
关于mysql - 使用ID从数据库获取数据时使用TOP、Limit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20796595/