RMySQL dbReadTable需要太长时间

时间:2017-07-06 02:57:43

标签: r database performance rmysql

我在R中使用带有DBI包的RMySQL包 当我运行代码时,

dbReadTable(con, "data") 

这是永远的。

我认为这张表是非常大的数据。 关于如何加快这一过程的任何想法?

谢谢,

1 个答案:

答案 0 :(得分:2)

尝试让数据库尽可能多地进行过滤和放大处理尽可能。数据库有比R更多优化操作的方法,并且不受RAM严重限制。它还减少了必须通过网络传输的数量。

常见的策略是

  • 使用WHERE子句减少行数
  • 明确列出(仅限必要的)列,而不是使用*
  • 尽可能多地在SQL中进行聚合(例如,GROUP BY + MAX
  • 使用INSERT查询从表到表写入,因此数据甚至不需要通过R。

我认为RMySQL应该比新的odbc包更快,但是值得尝试。

什么是'永远'? 5分钟还是5个小时?一旦数据到达R,事情仍然缓慢吗?如果事情仍然太慢而不可行,请考虑升级到类似sparklyr的内容。