加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 15:52:34 所属栏目:百科 来源:网络整理
导读:我打算用R做一些数据分析;数据集存储在PostgreSQL表中,其中一些包含多达200万条记录.我认为这对于R来说不是一个大问题,并且记录的加载会相当快,但事情变得不同了. 做这样的事情可能需要一分钟或更长时间,这不是我所期望的: library(RPostgreSQL);drv - dbDr
我打算用R做一些数据分析;数据集存储在PostgreSQL表中,其中一些包含多达200万条记录.我认为这对于R来说不是一个大问题,并且记录的加载会相当快,但事情变得不同了.

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

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

替代代码甚至更慢:

records2 <- dbSendQuery(con,"select * from my_table ORDER BY id")
fetch(records2,n=-1)

我不能说我的硬件是世界上最先进的,但它是一款相当不错的MacBook Pro,配备8G RAM和SSD.当我使用QGIS获取相同的数据时,事情的完成速度要快得多.

在这种情况下,可以做些什么来提高性能?替代图书馆?诡计和黑客?还要别的吗?

解决方法

您应该排除ORDER BY – 这不是加载数据的一部分.它可能会显着减慢您的查询速度.
您可以在将数据存入R存储器之后对数据进行排序.如果您正在寻找快速订购,请查看此 SO answer.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读