Ускорьте соединения SQL по уникальному идентификатору в R - PullRequest
0 голосов
/ 11 июля 2019

Я использую SQL изнутри R с RSQLite, DBI и dbplyr. Я хочу объединить несколько очень больших таблиц, и объединения всегда имеют уникальный идентификатор (идентификатор уникален в каждой таблице, это правильная реляционная база данных). Есть ли способ прекратить присоединение SQL после того, как будет найдено соответствие для каждого наблюдения?

Позвольте мне привести простой пример. Я начинаю с table_1, который является небольшим подмножеством гораздо большей таблицы:

unique_id   value_1
1           50
2           100
3           100

Я хочу объединить эту таблицу с гораздо большей таблицей_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 огромна. Однако, поскольку идентификаторы уникальны, я знаю, что, когда у меня есть совпадение для каждого из моих наблюдений в таблице 1, я готов. Не нужно продолжать изучать таблицу 2. Есть ли способ, с помощью которого я могу сказать SQL прекратить объединение на этом этапе?

...