小编典典

确定记录是否存在的最快方法

all

正如标题所暗示的那样......我试图以最少的开销找出最快的方法来确定表中是否存在记录。

示例查询:

SELECT COUNT(*) FROM products WHERE products.id = ?;

    vs

SELECT COUNT(products.id) FROM products WHERE products.id = ?;

    vs

SELECT products.id FROM products WHERE products.id = ?;

假设?'TB100'…交换了第一个和第二个查询将返回完全相同的结果(例如…1对于此对话)。最后一个查询将按'TB100'预期返回,或者如果id表中不存在则什么也不返回。

目的是确定是否id在表中。如果不是,程序将接下来插入记录,如果是,程序将跳过它或执行基于此问题范围之外的其他程序逻辑的 UPDATE 查询。

哪个更快并且开销更少?(每次程序运行都会重复上万次,一天会运行很多次)。

(通过 M$ 提供的 JDBC 驱动程序从 Java 对 M$ SQL Server 运行此查询)


阅读 103

收藏
2022-07-17

共1个答案

小编典典

SELECT TOP 1 products.id FROM products WHERE products.id = ?;将优于您的所有建议,因为它会在找到第一条记录后终止执行。

2022-07-17