哪个会表现得更快
1.
SELECT *
FROM test
WHERE id IN (1, 2, 3, 4, 5);
或者
2.
FOR s IN (SELECT id FROM ids)
LOOP
SELECT * FROM test where id = s.id;
END LOOP;
我认为第一个查询的执行速度会更快,因为它会被执行一次,但是看第二个查询它只需要获取与一个id相关的数据,这个ID一次只能是一行,这让我感到困惑。
我只需要在概念上知道哪一个会表现得更好,哪种方式正确?
答案 0 :(得分:2)
Tom Kyte的口头禅是:
我觉得这是一个非常有用的经验法则。