次の 3 つの SQL ステートメントのパフォーマンスに違いはありますか?
SELECT * FROM tableA WHERE EXISTS (SELECT * FROM tableB WHERE tableA.x = tableB.y)
SELECT * FROM tableA WHERE EXISTS (SELECT y FROM tableB WHERE tableA.x = tableB.y)
SELECT * FROM tableA WHERE EXISTS (SELECT 1 FROM tableB WHERE tableA.x = tableB.y)
それらはすべて機能し、同じ結果セットを返すはずです。しかし、内側の SELECT が tableB のすべてのフィールドを選択するのか、1 つのフィールドを選択するのか、それとも定数だけを選択するのかは問題でしょうか?
すべてのステートメントが同等に動作する場合のベスト プラクティスはありますか?