我应该在数据库中进行数值计算吗?

时间:2013-11-13 22:49:05

标签: python sql postgresql psycopg2

我有一个数据库,其中包含我运行的许多模型的结果。我需要计算每个模型的chi ^ 2值。我正在使用python和 psycopg2 包与我的PostgreSQL数据库接口。我可以想到两种方法来做到这一点,我不确定哪种方法更快或者是否存在差异。

方法1:从我的数据库中选择与每个模型对应的行,然后在python中进行chi ^ 2计算。每个模型都有大约500-1000行与之关联,我必须阅读它,并且有20,000个模型。

方法2:编写一个SQL函数来计算数据库本身的chi ^ 2,然后为每个模型选择一个数字。

我比Python更熟悉Python,所以我很想单独使用方法1。但是,我可以看到让postgres优化关系代数的优势,然后只需要为我的python脚本读入每个模型的单个数字。在选择一种方法时,我应遵循一般策略吗?

1 个答案:

答案 0 :(得分:1)

首先,chi ^ 2不是一个复杂的计算。无论您使用哪种方法都无关紧要。但我仍然建议您使用方法2,因为方法1可能会导致您的应用程序出现OUT OF MEMORY错误。