就像标题所暗示的那样……我正在尝试以最少的开销找出最快的方法来确定表中是否存在记录。
查询样例:
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运行此查询)
if exists(select null from products where id = @id)
; 如果在客户直接调用的查询中select case when exists (...) then 1 else 0 end
。