【发布时间】:2019-02-27 14:26:44
【问题描述】:
目前有一个棘手的问题,需要最有效的解决方法。
我们定期遍历大型 CSV 文件(约 50000 到 2m 行),并且对于每一行,我们需要检查数据库表中的匹配列。
因此,例如,每个 CSV 行可能包含有关活动的详细信息 - 艺术家、地点、日期/时间等,并且对于每一行,我们检查我们的数据库 (PG) 中是否存在与艺术家、地点和日期匹配的任何行/时间最长,如果找到匹配则执行操作。
目前,整个过程是高 CPU、内存和时间密集型的逐行提取,因此我们分批执行匹配,但仍在寻求一种有效的方法来执行内存和时间方面的比较
谢谢。
【问题讨论】:
-
如果您提供了需要考虑的模式和关系示例,那肯定会有所帮助。但通常批处理是一个不错的方法。
标签: ruby-on-rails ruby database postgresql csv