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

将数据从PostgreSQL加载到R的最快方法,第1张

概述我打算用R做一些数据分析;数据集存储在PostgreSQL表中,其中一些包含多达200万条记录.我认为这对于R来说不是一个大问题,并且记录的加载会相当快,但事情变得不同了. 做这样的事情可能需要一分钟或更长时间,这不是我所期望的: library(RPostgreSQL);drv <- dbDriver("PostgreSQL")con <- dbConnect(drv, dbname = 我打算用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. 总结

以上是内存溢出为你收集整理的将数据从PostgreSQL加载到R的最快方法全部内容,希望文章能够帮你解决将数据从PostgreSQL加载到R的最快方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1156562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存