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

时间:2013-04-29 01:39:34

标签: sql firebird sqlperformance

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

如:

where field1 in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

提供性能提升

where field1 in (3, 5, 10, 2, 1, 8, 6, 9, 4, 7)

1 个答案:

答案 0 :(得分:1)

是的,但可能是依赖于实现的方式。 IN被处理为顺序OR,并且可以假设最可能的处理顺序是写的。

那就是说,我首先假设优化器将按照给定的顺序处理元素,因为这是最简单的,并且将它们从最可能的到最不可能的集合中排序。它不会伤害,并且很可能会有所帮助。差异是可衡量的还是重要的是另一个问题;衡量它,让我们知道。