使用 UNION ALL 进行高效查询
尝试在一张精度递减的表,依次执行多个 SELECT 语句效率很低另一个。相反,请考虑利用 UNION ALL 查询将多个 SELECT 组合成一个高效的表达式。
优化查询:
SELECT * FROM image WHERE name = 'name105' AND group_id = 10 UNION ALL SELECT * FROM image WHERE name = 'name105' UNION ALL SELECT * FROM image WHERE group_id = 10 LIMIT 1;
解释:
此查询使用三个 SELECT 语句,每个语句的级别逐渐降低precision:
通过使用 UNION ALL 组合这些 SELECT,查询可确保返回第一个匹配项,即使它仅基于一个参数。
好处:
注意:
在 PostgreSQL 版本 11 及更高版本中,在使用 UNION ALL 时考虑并行追加的可能性。这在某些场景下会影响查询的可靠性。有关详细信息,请参阅以下线程:
以上是UNION ALL 如何优化 PostgreSQL 中的递减精度 SELECT 语句?的详细内容。更多信息请关注PHP中文网其他相关文章!