我所做的是在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。它运行得非常快。
答案 0 :(得分:0)
如果没有数据发送到R
,那么如果有任何差异就会令人惊讶。
如果数据 被发送回R
,那可能相对较慢(我发现psycopg2
和pandas
在许多情况下更快地进行数据传输)
根据R
中对数据的处理方式,使用PL/R
可能更有效。