首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据从PostgreSQL加载到R的最快方法

将数据从PostgreSQL加载到R的最快方法
EN

Stack Overflow用户
提问于 2014-02-04 20:40:17
回答 2查看 391关注 0票数 4

我计划使用R进行一些数据分析;数据集存储在PostgreSQL表中,其中一些表包含多达200万条记录。我认为这对R来说不是什么大问题,而且加载记录会相当快,但结果却不同。

做这样的事情可能需要一分钟或更长时间,这不是我所期望的:

代码语言:javascript
运行
复制
library(RPostgreSQL);

drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, dbname = "mydb", user="me", password="my_password");

records <- dbGetQuery(con, statement = paste(
  "SELECT *",
  "FROM my_table",
  "ORDER BY id")); # 1.5M records

替代代码甚至更慢:

代码语言:javascript
运行
复制
records2 <- dbSendQuery(con, "select * from my_table ORDER BY id")
fetch(records2,n=-1)

我不能说我的硬件是世界上最先进的,但它是一个相当不错的8G内存和固态硬盘的MacBook专业版。当我使用QGIS获取相同的数据时,处理速度会快很多。

在这种情况下,可以做些什么来提高性能?备用库?技巧和技巧?还要别的吗?

EN

回答 2

Stack Overflow用户

发布于 2016-01-10 06:55:32

您应该排除ORDER BY -这不是加载数据的一部分。这可能会显著降低您的查询速度。

您可以对数据进行排序,然后将它们放入R内存。如果您正在寻找快速订购,请检查此SO answer

票数 1
EN

Stack Overflow用户

发布于 2014-05-14 05:56:09

与其说是对问题的回答,不如说是重新设计,但是...

您可以直接将R插入到PostgreSQL中,并在不移动数据的情况下运行查询。不能比完全不移动更快地移动它:)

PL/R for PostgreSQL

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21552857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档