我正在将 Doctrine 和 MongoDB 用于应用程序,并且有一项任务应将数据从 CSV 文件导入到集合中。大约有 5 个不同的 CSV 文件,每个文件至少有 450.000 个条目,每年应该重要 1 到 3 次。
目前,我遍历文件的所有行,创建一个对象,persist()
每 2.500 个项目调用和刷新一次。
每个项目都不是很大,它有一个 ID,一个 10-20 个字符的字符串,一个 5-10 个字符的字符串和一个布尔值。
我的第一个问题是:当我刷新每 5.000 个项目时,插入速度会明显变慢。在我的测试环境中,刷新 5.000 个项目大约需要 102 秒,刷新 2.500 个项目大约需要 10 秒。
一段时间后冲洗会变慢。如前所述,开始刷新 2.500 个项目大约需要 10 秒,在 100.000 个项目之后,刷新 2.500 个项目需要将近一分钟。
我可以做任何优化来加快速度吗?