我打算用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获取相同的数据时,事情的完成速度要快得多.
在这种情况下,可以做些什么来提高性能?替代图书馆?诡计和黑客?还要别的吗?