RPostgreSQL中的查询速度非常慢

RPostgreSQL中的查询速度非常慢,r,postgresql,shiny,rpostgresql,R,Postgresql,Shiny,Rpostgresql,目前,我正在使用几个对PostgreSQL数据库的查询(主要是SELECT和INSERT语句)构建一个闪亮的应用程序。这个应用程序可以工作,但我正在努力使它更快。当我比较使用RPostgreSQL包的同一个查询与Postico这样的db客户机之间的执行时间时,使用RPostgreSQL包要多花8倍的时间 有什么办法可以提高性能或从R连接到PostgreSQL数据库吗 谢谢您是否听说过dbplyr的软件包(带有b) 我会推荐它,因为此软件包使您的dplyr(没有b)能够与SQL数据库一起使用 由于

目前,我正在使用几个对PostgreSQL数据库的查询(主要是SELECT和INSERT语句)构建一个闪亮的应用程序。这个应用程序可以工作,但我正在努力使它更快。当我比较使用RPostgreSQL包的同一个查询与Postico这样的db客户机之间的执行时间时,使用RPostgreSQL包要多花8倍的时间

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


谢谢

您是否听说过dbplyr的软件包(带有b

我会推荐它,因为此软件包使您的
dplyr
(没有b)能够与SQL数据库一起使用

由于与数据库交互的方式将发生变化,因此有许多优势

来自此:

对此:

这些图像摘自Edgar Ruiz(2017)的一篇名为《使用R的数据库》的伟大文章。你应该看一下,了解更多细节

鲁伊斯先生提出的主要优势如下:

" 1) 对所有数据进行数据探索—我们可以专注于分析数据库中的数据,而不是制定计划来决定导入哪些数据,这反过来会产生更快的洞察力

2) 使用SQL引擎运行数据转换——实际上,我们正在将计算推送到数据库,因为dplyr正在向数据库发送SQL查询

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

4) 您的所有代码都在R中!-因为我们使用dplyr与数据库通信,所以无需更改语言或工具来执行数据探索。”

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

你应该试一试

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


我不确定这里是否有足够的信息为您解决问题。您的数据管道中可能存在很多差异。你有一个可复制的例子吗?您是否尝试过其他R库,如
odbc
?您可以将它与postgres驱动程序一起使用,而且应该快得多(至少比
RODBC
快得多)。您能提供一些可复制的东西吗?假设一个shell脚本调用
psql
来创建一个表,插入一些日期,然后插入一些定时操作,将RPostgreSQL(与其他Postgres前端使用相同的C库…)与Postco等进行比较?您可以尝试一下。感谢@Scarabee,RPostgres包至少比RPostgreSQL快50%。另一方面,我们还开发了一个外部python API,用于生成查询并将它们返回到R,当我们得到结果时,我将更新此线程此答案与问题无关,除了提到R和Postgres之外。当我读到OP的问题时,他并没有要求dbplyr商业广告。@Dirk好吧,我并没有从Edgar Ruiz lol那里收到任何$$。OP要求的是“提高性能的方法的想法”。为什么您认为dbplyr不会是这方面的替代方案?