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