我有大约2百万个不同长度的字符串需要压缩并储存到MongoDb GridFS作为文件。这些字符串目前被储存在一个MS SQL表的TEXT字段中。我写了一个小应用程序,可以分别读取每一行然后将其压缩并存储为GridFS文件。我的程序有一个阅读器和50个线程池来存储结果。虽然能够正常工作,但速度很慢(平均每秒100条记录)。请问是否有更快的导入GridFS的方法?我在Windows上使用MongoDb 1.6、C#和.NET中的MongoCSharp驱动程序。
我认为在运行一个很简单的应用程序,将1000个字符串放入1000个GridFS文件中并对其进行分析时,我发现了MongoDb CSharp驱动程序中的问题。结果显示,97%的时间都花费在检查集合中是否存在具有相同文件名的文件上。我在文件名字段上添加了一个索引,现在它的速度非常快!对我来说问题是,如果驱动程序需要保持文件名唯一并进行检查,为什么它不添加唯一索引(如果缺少)?这背后的原因是什么?