タイトルが示すように...テーブルにレコードが存在するかどうかを判断するために、オーバーヘッドを最小限に抑えて最速の方法を見つけようとしています。
サンプルクエリ:
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'
ましょう...最初と2番目の両方のクエリはまったく同じ結果を返します(たとえば...1
この会話の場合)。最後のクエリは期待どおりに返されるか、テーブルに存在し'TB100'
ない場合は何も返されません。id
目的はid
、 が表にあるかどうかを判断することです。そうでない場合、プログラムは次にレコードを挿入します。そうであれば、プログラムはそれをスキップするか、この質問の範囲外の他のプログラム ロジックに基づいて UPDATE クエリを実行します。
どちらが高速でオーバーヘッドが少ないですか? (これは、プログラムの実行ごとに何万回も繰り返され、1 日に何度も実行されます)。
(M$ 提供の JDBC ドライバーを介して、Java から M$ SQL Server に対してこのクエリを実行します)