我有一个数据库,其中包含11GB的数据大小。在我的场景中,我需要查询所有数据(select * from table
)并使用每5000万条记录创建对象。这里的内存不是问题,我使用的是8CPU 52GB RAM机器。
当前,我正在这样做,将计算机中的CPU数量作为线程获取,并将数据库分为每个线程的范围。然后,在每个线程中,它查询SQLite数据记录中的数据,并创建一个std::vector<map <string,string>>
结构来保存这些数据。然后从向量中获得一个元素,并创建一个我需要的对象。最后,所有线程将对象推入所有线程的全局数组。
但是这种方法并不能给出超过5000万条记录的预期优化结果,任何人都可以建议我该怎么做才能从DB中快速访问数据。
注意-我看到有一个称为MapReduce的方法。但是我不明白如何将其应用到我的场景中。
答案 0 :(得分:-1)
我建议以下内容:
可能采取的措施(取决于您的瓶颈所在)
分析后告诉您的发现,您将获得更有针对性的建议