私はカラムがuser_id、email、defaultのテーブルを持っています。デフォルトでは、メールがユーザーのデフォルトメールかどうかに応じて、「Y」または「N」が格納されます。各ユーザーは、デフォルトの電子メールを1つだけ持つことができます。2つのクエリの方が効率的ですか?
ユーザーがテーブルの更新または挿入を行っているとき、私のSPで、ユーザーがisDefaultを 'Y'として渡したかどうかを確認します。もしそうなら、私はデフォルト 'N'にするために、そのユーザーのすべてのエントリを更新する必要があります。私の質問はされています。デフォルトの
update table
set default = 'N'
where user_id = 'abc'
and default = 'Y'
(オーバーヘッド:無施錠の問題(複数のスレッドが特定のユーザのためのテーブルからデータを要求するわけではない)以上の時間が消費している次のクエリの中の1が存在しない考慮します= 'Y' チェックが)
OR
update table
set default = 'N'
where user_id = 'abc'
(ユーザーのすべてのレコードを更新するオーバーヘッド)
クエリの速度は最も重要な要素ではありません。不必要な更新が重いロックを引き起こすという事実と、更新が実際には変更されていない場合でもテーブルの上に定義されているUPDATEトリガを起動します。 –