在编写 SQL 查询时,例如
SELECT ID, NAME FROM USER_TABLE WHERE ID IN (1, 2, 10, 14, 15, ..., n)
解析器是否只是将其改写成这个?
SELECT ID, NAME FROM USER_TABLE WHERE ID = 1
OR ID = 2
OR ID = 10
OR ID = 14
OR ID = 15
...
OR ID = n
或者它是否在后台做其他事情以提高效率?虽然手写是一场噩梦,而且我永远不会提倡这样做,但使用 IN 而不是像这样的一系列 OR 条件是否有任何理论上的性能优势或打击?