我有大约 200 万个不同长度的字符串需要压缩并作为文件放入 MongoDb GridFS。
字符串当前存储在表的 MS SQL TEXT 字段中。我编写了一个示例应用程序来读取每一行,将其压缩并将其存储为 GridFS 文件。
有一个读取器和一个包含 50 个线程的线程池来存储结果。它可以工作,但速度很慢(平均每秒 100 条记录)。
我想知道是否有任何方法可以更快地导入到 GridFS 中?
我在 Windows 上使用 MongoDb 1.6,在 C# 和 .NET 中使用 MongoCSharp 驱动程序。
最佳答案
我想我是通过在运行一个非常简单的应用程序将 1000 个字符串放入 1000 个 GridFS 文件中对其进行分析时发现了 MongoDb CSharp 驱动程序内部的问题。
事实证明,97% 的时间花在检查集合中是否存在具有相同文件名的文件上。我在文件名字段上添加了一个索引,现在速度非常快!
我的问题是,如果驱动程序需要保持文件名的唯一性并进行检查,如果缺少唯一索引,为什么不为其添加唯一索引?这背后的原因是什么?
关于c# - 快速导入 MongoDb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3573901/