显然,在数学中,逻辑 AND 和 OR 类似于集合论的 INTERSECT 和 UNION。也就是说,如果 A 和 B 是集合,则 {x: x IN A OR x IN B} = A UNION B(与 AND 和 INTERSECT 类似)。
我的问题如下:这种数学等式是否对应于 SQL 中的运行时等价性?具有一组 OR 表达式的单个 SQL 查询所花费的时间是否等于一组彼此联合的 SQL 查询?更准确地说,是这样的:
SELECT * FROM A
WHERE A.x = a OR A.x = b OR ... OR A.x = z
相当于运行时间?
SELECT * FROM A
WHERE A.x = a
UNION
...
UNION
SELECT * FROM A
WHERE A.x = z
如果实现很重要,我关心的是 MySQL(这是我在工作中使用的)和 PostgreSQL(这是我个人和大学使用的)。