RPostgreSQL中的查询非常慢

时间:2018-08-25 20:17:41

标签: r postgresql shiny rpostgresql

当前,我正在使用对PostgreSQL数据库的查询(主要是SELECT和INSERT语句)来构建Shiny APP。该应用程序可以运行,但是我正在尝试使其更快。当我比较使用RPostgreSQL软件包和db客户端(如Postico)的同一查询之间的执行时间时,使用RPostgreSQL软件包所花费的时间要多8倍。

有什么方法可以提高性能或从R连接到PostgreSQL数据库?

谢谢

1 个答案:

答案 0 :(得分:1)

您是否听说过软件包 dbplyr (使用 b )?

我之所以推荐它,是因为此软件包使您的 dplyr (无 b )可以与SQL数据库一起使用。

有很多优点,因为与数据库交互的方式会发生变化

来自此:

enter image description here

为此:

enter image description here

这些图像摘自Edgar Ruiz(2017)发表的题为“使用R的数据库” 的精彩文章。您应该查看它HERE以了解更多详细信息。

鲁伊斯先生的主要优势是,我引用:

”    1)对所有数据进行数据探究-无需提出计划来决定要导入什么数据,我们可以专注于分析数据库内部的数据,这反过来应该会产生更快的洞察力。

2)使用SQL引擎运行数据转换-实际上,由于dplyr将SQL查询发送到数据库,我们实际上将计算推入了数据库。

3)收集目标数据集-熟悉数据并选择要共享或建模的数据点后,可以使用最终查询将仅该数据带回到R中的内存中。

4)您所有的代码都在R中! -由于我们使用dplyr与数据库进行通信,因此无需更改语言或工具即可执行数据浏览。

因此,您可能会通过 dbplyr / dplyr 获得所需的速度。

您应该尝试一下。

您可以在以下位置找到有关它的更多信息以及如何使用 DBI 软件包与PostgreSQL服务器建立连接的信息:

https://cran.r-project.org/web/packages/dbplyr/vignettes/dbplyr.html

https://rviews.rstudio.com/2017/05/17/databases-using-r/

相关问题