0
假设我有[User]表,并且我想检查电子邮件是否存在于该表中。以下两个查询之间是否有区别?哪一个执行速度快,为什么?SELECT查询的性能检查表中是否存在记录
选项1:
DECLARE @EXIST as bit
SELECT TOP 1 @EXIST = 1
FROM [dbo].[User]
WHERE UserEmail = N'[email protected]'
选项2:
DECLARE @EXIST as bit
SELECT @EXIST = 1
FROM [dbo].[User]
WHERE UserEmail = N'[email protected]'
我认为选择1可能是因为TOP 1的速度更快,但不能完全确定,因为我不是SQL专家。
很容易,只要看执行计划 – lad2025
添加这对您的测试: 'IF EXISTS(SELECT 1从[DBO] [用户] 其中useremail = N'[email protected]')SET @EXIST = 1'。 –
TOP 1可能需要排序。它也将取决于用户/用户电子邮件列上的索引。除此之外,那里的数据库类型不会有太大的改进。 – Pieter21