当我将两个查询优化后,使它们的运行时间少于0.02秒,但是使用UNION
连接后,结果查询需要超过1秒才能运行。而UNION ALL
比UNION DISTINCT
花费的时间更长。
我原本认为允许重复项会使查询速度更快,而不是更慢。
那我是不是最好单独运行这两个查询呢?
我更倾向于使用UNION
。
以一个简单的例子来说明:
SELECT name FROM t1 WHERE field1 = true
需要花费0.001秒时间
如果我执行以下操作
SELECT name FROM t1 WHERE field1 = false
需要0.1秒钟时间。
如果我接着运行
SELECT name FROM t1 WHERE field1 = true
UNION ALL
SELECT name FROM t1 WHERE field1 = false
需要超过1秒钟的时间。