gpt4 book ai didi

sql - 在 SELECT 查询中使用 TOP 1 的性能影响

转载 作者:行者123 更新时间:2023-12-02 01:13:42 26 4
gpt4 key购买 nike

我有一个用户表,其中有用户名和应用程序列。用户名可能重复,但用户名+应用程序的组合是唯一的,但我没有在表上设置唯一约束(为了性能)

问题:以下之间有什么区别(性能方面):

SELECT * FROM User where UserName='myuser' AND Application='myapp'

并且-

SELECT TOP 1 * FROM User where UserName='myuser' AND Application='myapp'

由于用户名 + 应用程序的组合是唯一的,两个查询始终返回不超过一条记录,因此 TOP 1 不会影响结果。我一直认为添加 TOP 1 确实会加快速度,因为 sql server 在找到一个匹配项后会停止查找,但我最近在一篇文章中读到,使用 TOP 实际上会减慢速度,建议避免,尽管它们还没有解释了原因。

有什么意见吗?

谢谢!安德烈

最佳答案

仅使用 top 可能会带来一些性能差异,但使用索引可以获得真正的性能。

如果您有 UserNameApplication 字段的索引,则数据库甚至不必接触表,直到隔离了单个记录。此外,它已经从表统计信息中知道这些值是唯一的,因此使用 top 没有区别。

关于sql - 在 SELECT 查询中使用 TOP 1 的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1435356/

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