当前,我正在使用对PostgreSQL数据库的查询(主要是SELECT和INSERT语句)来构建Shiny APP。该应用程序可以运行,但是我正在尝试使其更快。当我比较使用RPostgreSQL软件包和db客户端(如Postico)的同一查询之间的执行时间时,使用RPostgreSQL软件包所花费的时间要多8倍。
有什么方法可以提高性能或从R连接到PostgreSQL数据库?
谢谢
答案 0 :(得分:1)
您是否听说过软件包 dbplyr
(使用 b )?
我之所以推荐它,是因为此软件包使您的 dplyr
(无 b )可以与SQL数据库一起使用。
有很多优点,因为与数据库交互的方式会发生变化
来自此:
为此:
这些图像摘自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
和