c# - 快速导入 MongoDb

标签 c# mongodb gridfs

我有大约 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/

相关文章:

javascript - 通过 request.body 将元数据添加到 GridFS 文件

c# - 自定义验证属性 : Comparing two properties in the same model

c# - LINQ 可以用于查找排序列表中的间隙吗?

c# - 如何终止在非托管代码中阻塞的托管线程?

javascript - MongoDB 日期时间值未正确存储

python - 如何通过文件元数据从 GridFS 中删除图像文件?

c# - WPF 应用程序 - 呈现性能

java - 如何查找一个点是否存在于哪个多边形中

mongodb - 如何在运行 MongoDB Atlas 全文搜索之前应用过滤器?

php - 在 Laravel 5.3 下使用带有 mongo-php-library 2.2 驱动程序的 Gridfs