加快SQL在R

时间:2019-07-10 23:41:22

标签: sql r sqlite join unique

我正在R中将SQL与RSQLite,DBI和dbplyr一起使用。我想联接多个非常大的表,并且联接始终在唯一的ID上(每个表的ID都是唯一的,这是一个适当的关系数据库)。一旦发现每个观察结果都匹配,有没有办法让SQL停止加入?

让我举一个简单的例子。我从table_1开始,它是一个更大的表的一小部分:

unique_id   value_1
1           50
2           100
3           100

我想将此表与更大的table_2合并:

unique_id   value_2
1           500
2           10
3           102
4           500
5           10
6           102
7           500
8           10
9           102
...         ...

我通过以下方式完成

library(RSQLite)
library(DBI)
library(dbplyr)

# some connection statements to my database

new_tab <- left_join(table_1, table_2, by = 'unique_id')

此操作需要一些时间,因为它正在搜索表2的所有潜在匹配项,并且表2很大。但是,由于ID是唯一的,所以我知道一旦对表1中的每个观察值都有一个匹配项,就可以完成。无需继续查看表2。有没有一种方法可以告诉SQL此时停止连接?

0 个答案:

没有答案