3

我有大约 200 万个不同长度的字符串,我需要将它们压缩并作为文件放入 MongoDb GridFS。

字符串当前存储在表的 MS SQL TEXT 字段中。我编写了一个示例应用程序来读取每一行,对其进行压缩并将其存储为 GridFS 文件。

有一个阅读器和一个由 50 个线程组成的线程池来存储结果。它可以工作,但速度很慢(平均每秒 100 条记录)。

我想知道是否有任何方法可以更快地导入 GridFS?

我在 Windows 上使用 MongoDb 1.6 和 C# 和 .NET 中的 MongoCSharp 驱动程序。

4

1 回答 1

4

我想我在运行一个将 1000 个字符串放入 1000 个 GridFS 文件的非常简单的应用程序时对其进行分析,从而发现了 MongoDb CSharp 驱动程序中的问题。

事实证明,97% 的时间都花在了检查集合中是否存在具有相同文件名的文件上。我在文件名字段上添加了一个索引,现在它的速度非常快!

我的问题是,如果驱动程序需要保持文件名的唯一性并进行检查,为什么不为其添加唯一索引?这背后的原因是什么?

于 2010-08-26T13:26:28.337 回答