7

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)
4

1 回答 1

2

是的,它会,但可能以依赖于实现的方式。IN 被处理为顺序 OR,人们可能会假设最可能的处理顺序是书面的。

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

于 2013-04-29T01:59:45.840 回答