sql - SQL 中的项目顺序是否为 : WHERE IN () matter?

标签 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)

最佳答案

是的,它会,但可能以依赖于实现的方式。 IN 是按顺序 OR 处理的,人们可能会假设最有可能的处理顺序是写入的。

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

关于sql - SQL 中的项目顺序是否为 : WHERE IN () matter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16270077/

相关文章:

sql - 是否可以在 sql server 2005 中恢复 Sql Server 2008 备份

sql - 将数据行转换为列并按月显示

sql - 在SQL LIKE语句中使用 '?'参数

sql - 在WHERE中使用Oracle内置UPPER函数会导致SELECT语句的性能下降吗?

php - 在 SQL 查询或 PHP 中进行计算?

sql - postgis地址查询(带有osm数据)

sql - 如何使用 Insert .. select,以及来自 insert 的条件变量

Firebird 相当于 MySQL 表分区

MySQL vs Firebird vs SQLite

SQL Server : MERGE performance