【发布时间】:2017-08-24 18:13:04
【问题描述】:
我正在使用dplyr 和dbplyr 包来连接我的数据库。我有一张包含数百万条记录的表。我还有一个值列表,这些值对应于我希望过滤的同一个表中的键。通常我会做这样的事情来过滤表格。
library(ROracle)
# connect info omitted
con <- dbConnect(...)
# df with values - my_values
con %>% tbl('MY_TABLE') %>% filter(FIELD %in% my_values$FIELD)
但是,my_values 对象包含超过 500K 的条目(因此我不在这里提供实际数据)。当它们基本上被放入IN 语句(它基本上挂起)时,这显然是没有效率的。通常,如果我正在编写 SQL,我会创建一个临时表并编写一个 WHERE EXISTS 子句。但在这种情况下,我没有写权限。
如何使这个查询在 R 中更高效?
【问题讨论】:
-
可能是内部连接?