r - 如何加快 dbconnect 数据库的collect()速度

标签 r database collect dbplyr

我正在从 amazonaws 服务器上的 odbc 驱动程序读取表。 我在 64 位 Windows 计算机上使用 R 4.0.0。 在家工作并使用公司的 VPN,因此我的下载网速约为 17 Mbps。

我用这个语句连接到数据库 con <- dbConnect(odbc::odbc(), "databasename", timeout = 10)

我用这个语句访问该表 case_tbl <- tbl(con, dbplyr::in_schema("fhv_owner", "case")) 案例 <- 收集(case_tbl)

该表有 500K 行和 60 列,所以它并不大,但下载大约需要 2 分钟。 如果我的网速很慢,有时需要 30 分钟。

有什么办法可以加快速度吗?也许是用 data.table 而不是 dplyr 的东西?

我尝试过过滤我选择的列,但有时我需要更多列并且必须重新运行。

也许我只需要为更快的互联网付费。

谢谢, 詹妮弗

最佳答案

由于您不在这里进行任何数据操作data.table不会帮助您加快该过程。
要确保延迟是由于您的互联网连接速度造成的,而与 dbplyr 无关,请直接使用 DBI:

library(DBI)
con <- dbConnect(odbc::odbc(), "databasename", timeout = 10)
system.time({case_tbl <- dbGetQuery(con, "SELECT * FROM fhv_owner.case")})

关于r - 如何加快 dbconnect 数据库的collect()速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62937026/

相关文章:

r - 堆叠三列组以及多个样本的均值和置信区间

r - ggplot2: geom_smooth 选择观察连接(等同于 geom_path())

database - @JoinColumn 和 mappedBy 用于拥有方和反方

java - 如何使用java8来采集这张图

ruby - 林克 map !或收集!

r - 在 Redhat 6.3 上安装 R 3+

将数据从 3 行重组为 1

java - SQL查询速度: multiple queries vs sorting within Java

javascript - 使用 WCF 从数据库中获取图像

java - 对方付费电话要 map 吗?