Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我应该在数据库中进行数值计算吗?_Python_Sql_Postgresql_Psycopg2 - Fatal编程技术网

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

Python 我应该在数据库中进行数值计算吗?,python,sql,postgresql,psycopg2,Python,Sql,Postgresql,Psycopg2,我有一个数据库,其中包含我运行过的许多模型的结果。我需要计算每个模型的chi^2值。我正在使用python和 与我的PostgreSQL数据库接口的包。我可以想出两种方法来实现这一点,但我不确定哪种方法更快,或者是否有区别 方法1:从我的数据库中选择对应于每个模型的行,然后用python进行chi^2计算。每个模型都有大约500-1000行与之关联,我必须读入,共有20000个模型 方法2:编写一个SQL函数来计算数据库本身中的chi^2,然后为每个模型选择一个数字 我对Python比对SQL更

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

方法1:从我的数据库中选择对应于每个模型的行,然后用python进行chi^2计算。每个模型都有大约500-1000行与之关联,我必须读入,共有20000个模型

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


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

首先,chi^2不是一个复杂的计算。不管你用哪种方法都无所谓。但是我仍然建议您使用方法2,因为方法1可能会导致应用程序出现内存不足错误

首先,chi^2不是一个复杂的计算。不管你用哪种方法都无所谓。但是我仍然建议您使用方法2,因为方法1可能会导致应用程序出现内存不足错误

方法2看起来更有效。另外,数据库函数本质上是可重复使用的。在这种情况下,我通常使用方法2。在适当的数据库服务器上只有20000条记录,所有筛选和行内计算实际上都是即时的。Postgres支持PL/Python,这意味着您也可以使用Python实现方法2。方法2看起来更有效。另外,数据库函数本质上是可重用的。在这种情况下,我通常使用方法2。在一个适当的数据库服务器上只有20000条记录,所有筛选和行内计算实际上都是即时的。Postgres支持PL/Python,这意味着您也可以使用Python实现方法2。