初学者的问题。
我正在使用带有dplyr
的 R 来分析大量数据,但我无法访问基于服务器的数据库。此外,我的计算机的内部硬盘驱动器对于我需要创建的数据库来说太小了。到目前为止,我一直在使用monetdblite
和RSQLite
来存储数据。
问:如果我将数据库保存在外部硬盘驱动器上并通过USB将其连接到计算机,monetdblite
/RSQLite
的速度会降低多少?哪些因素决定了这是否可行?
或者在我的情况下是否有更好的替代方法(仍然依赖于dplyr
的数据库连接(?
很难判断外部驱动器是否较慢。例如,如果内部驱动器是 SSD,而外部驱动器是经典的"旋转磁盘",则性能下降或多或少是可以预期的,尤其是在使用复杂查询时。我建议您简单地尝试使用大小合理的数据库和两个磁盘上的查询。还有各种磁盘性能检查工具(例如OSX上的XBench(可用于检查性能。这里要寻找的有趣指标是顺序扫描速度和随机访问速度。
我使用 monetDBLite 将大型数据集加载到 Rstudio 中。出于安全原因,我有一个带有USB 3.0的外部SSD,但我的内置硬盘驱动器也是SSD。我已经使用它几个月了,我的经验总结在以下查询中:
从drug_db中选择 *,其中 ATC ='L02BX03' 或 ATC ='L02BB04';
内置:<2 秒,
外部:6-7 分钟
查询扫描 ~15 Gb 数据库并返回 ~ 30 000 行 14 个变量。根据我的经验,与针对外部 SSD 运行查询相比,将文件复制到内置驱动器并在那里运行查询实际上要快得多。