以下三个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)
Run Code Online (Sandbox Code Playgroud)
它们都应该工作并返回相同的结果集.但是如果内部SELECT选择tableB的所有字段,一个字段或只是一个常量,这是否重要?
当所有陈述行为相同时,是否有最佳做法?