代码之家  ›  专栏  ›  技术社区  ›  Khash

快速导入MongoDB

  •  3
  • Khash  · 技术社区  · 15 年前

    我有大约200万个不同长度的字符串需要压缩并作为文件放入MongoDB网格中。

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

    有一个读卡器和一个包含50个线程的线程池来存储结果。它可以工作,但速度非常慢(平均每秒100条记录)。

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

    我在Windows上使用MongoDB1.6,在C和.NET中使用MongoCSharp驱动程序。

    1 回复  |  直到 15 年前
        1
  •  4
  •   Khash    15 年前

    我想我是在MongoDBCSharp驱动程序中发现这个问题的,通过运行一个非常简单的应用程序来分析它,它将1000个字符串放入1000个gridfs文件中。

    结果发现97%的时间花在检查集合中是否存在同名文件上。我在文件名字段中添加了一个索引,现在它很快就爆炸了!

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