SQL性能:UNION或ORDER BY

Max*_*Max 1 sql postgresql performance

问题是:我们有一个非常复杂的搜索查询.如果其结果产生的行太少,我们通过使用相同查询的不太严格的版本UNIONing查询来扩展结果.

我们正在讨论一种不同的方法是更快和/或更好的质量.我们将创建一个自定义sql函数,而不是UNIONing,它将返回匹配的分数.然后我们可以简单地按匹配分数排序.

关于性能:它会比UNION慢吗?

我们使用PostgreSQL.

任何建议将不胜感激.

非常感谢Max

mar*_*c_s 6

一个明确的,如果你衡量现实环境中这两种方法的表现只能给出答案.其他一切都充其量只是猜测.

这里有很多变量 - 表格的结构和数据的类型,数据的分布,你掌握的索引类型,服务器负载的重量 - 这几乎是不可能的真的,预测任何结果.

真的 - 我最好的建议是:在实时系统上尝试两种方法,使用实时数据,而不仅仅是几十个测试行 - 并测量,测量和测量.