PostgreSQL函数通常比代码更快吗?

时间:2016-03-21 21:20:01

标签: sql performance postgresql

我们都知道,在应用端过滤使用WHERE更高效。但是,使用PostgreSQL函数比应用程序代码更高效吗?这是一个参考示例:

给出array = [1, 2, NULL] ...

array_remove(array, NULL)

VS

result = SQL.execute(array); result.remove_null_values()

假设我必须在应用程序中运行代码,将每个代码移动到SQL中是否真的值得?如同,获得主要表现(> 10%)。

2 个答案:

答案 0 :(得分:1)

如果性能很重要,则根据您的具体数据处理需求进行分析。

在您的示例中:假设无论如何都需要删除NULL值,让Postgres执行此操作是有意义的,因为这意味着需要将更少的数据返回给您的应用程序。

让Postgres完成这项工作的其他好处包括:在您自己的应用程序中维护更少的代码,并重复使用已在Postgres中提供的经过良好测试的代码。

答案 1 :(得分:1)

这是一种权衡。如果在数据库中进行工作意味着通过网络发送更少的东西,那可能就是胜利。但请记住,通常应用程序会横向扩展,数据库会垂直扩展,因此将大量工作推入数据库可能会在以后出现问题。