为什么在PostgreSQL下运行sql比使用RPostgreSQL包运行sql要快得多?

时间:2014-08-28 07:23:34

标签: postgresql rpostgresql

我所做的是在How to select efficiently in a very large table

网站上

我在R下使用了RPostgreSQL包,因为我想同时操作其他文件。从上面的网站可以看出,表格非常大。使用RPostgreSQL完成选择将花费两个多小时。但今天我在psql下使用相同的SQL代码而不是使用RpostgreSQL。它只用了几分钟。 为什么呢?

R的代码是:

sql='SELECT * into new_table FROM table_1 WHERE EXISTS (SELECT 1 FROM table_2 WHERE column=table_1.column_1) AND EXISTS (SELECT 1 FROM table_2 WHERE column=table_1.column_2)'
rs=dbSendQuery(con,sql)

更新: 我在python下使用了psycopg2。它运行得非常快。

1 个答案:

答案 0 :(得分:0)

如果没有数据发送到R,那么如果有任何差异就会令人惊讶。 如果数据 被发送回R,那可能相对较慢(我发现psycopg2pandas在许多情况下更快地进行数据传输)

根据R中对数据的处理方式,使用PL/R可能更有效。