当前有一个棘手的问题,需要有最有效的解决方法的思路。
我们定期遍历大型CSV文件(约50000至2m行),对于每一行,我们需要检查数据库表中是否有匹配的列。
例如,每个CSV行都可以包含有关事件的详细信息-艺术家,地点,日期/时间等,对于每一行,我们都会检查数据库(PG)中与艺术家,地点和日期/时间最多,然后如果发现匹配项,则执行操作。
当前,整个过程需要占用大量CPU,内存和时间,因此我们分批执行匹配,但仍在寻找一种有效的方法来进行内存和时间上的比较。
谢谢。
答案 0 :(得分:1)
这会将大部分负载转移到数据库服务器中,避免了所有ActiveRecord开销(网络流量,结果解析,模型实例化等)