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)
答案 0 :(得分:1)
是的,但可能是依赖于实现的方式。 IN被处理为顺序OR,并且可以假设最可能的处理顺序是写的。
那就是说,我首先假设优化器将按照给定的顺序处理元素,因为这是最简单的,并且将它们从最可能的到最不可能的集合中排序。它不会伤害,并且很可能会有所帮助。差异是可衡量的还是重要的是另一个问题;衡量它,让我们知道。