Быстрый импорт всей таблицы SQL (с использованием кеша?) - PullRequest
1 голос
/ 16 июня 2020

Я использую пакет DBI и R MySQL для импорта всей таблицы из базы данных. Код работает как положено. Я хотел бы знать, есть ли более быстрый способ импортировать одну и ту же таблицу несколько раз? Например, я импортирую таблицу, выполняю некоторые вычисления, закрываю сеанс R, а затем снова импортирую ту же таблицу завтра. Есть ли способ каким-то образом кэшировать эту таблицу и быстрее импортировать ту же таблицу?

Пример кода (работает как ожидалось):

library(RMySQL)
library(DBI)

# coonect to database
connection <- function() {
  con <- DBI::dbConnect(RMySQL::MySQL(), 
                        host = "91.234.xx.xxx", 
                        port = 3306L,
                        dbname = "xxxx",
                        username = "xxxx",
                        password = "xxxx",
                        Trusted_Connection = "True")
}

# imoprt
db <- connection()
vix <- DBI::dbGetQuery(db, 'SELECT * FROM VIX')
invisible(dbDisconnect(db))

1 Ответ

0 голосов
/ 16 июня 2020

А как насчет сохранения таблицы как .RDS?
По моему опыту, если вы сохраните файл на локальном диске , это будет на много порядков быстрее, чем запрос к БД.

#Save:
saveRDS(vix,file = 'vix.RDS')

#Load:
vix <- readRDS('vix.RDS')

вы можете использовать microbenchmark, чтобы проверить разницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...