SQL:WHERE IN()中的项目顺序是否重要?

Chr*_*ine 7 sql firebird sqlperformance

WHERE IN子句中值的顺序是否重要?(如果这很重要,这是在Firebird SQL上)

如:

where field1 in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Run Code Online (Sandbox Code Playgroud)

性能提升超过

where field1 in (3, 5, 10, 2, 1, 8, 6, 9, 4, 7)
Run Code Online (Sandbox Code Playgroud)

Pie*_*ens 2

是的,它会,但可能以依赖于实现的方式。IN 作为顺序 OR 进行处理,人们可能会假设最可能的处理顺序如所写的那样。

也就是说,我首先假设优化器将按照给定的顺序处理元素,因为这是最简单的,并将它们在集合中从最可能到最不可能的顺序排列。它不会造成伤害,而且很可能会有所帮助。差异是否可衡量或显着则是另一回事。测量一下并告诉我们。