Быстрый импорт в MongoDb - PullRequest
       21

Быстрый импорт в MongoDb

3 голосов
/ 26 августа 2010

У меня около 2 миллионов строк различной длины, которые мне нужно сжать и поместить в MongoDb GridFS в виде файлов.

В настоящее время строки хранятся в поле MS SQL TEXT таблицы.Я написал пример приложения для чтения каждой строки, сжатия ее и сохранения в виде файла GridFS.

Существует один читатель и пул потоков из 50 потоков, хранящих результаты.Это работает, но очень медленно (в среднем 100 записей в секунду).

Мне было интересно, есть ли способ более быстрого импорта в GridFS?

Я использую MongoDb 1.6 в Windowsс драйвером MongoCSharp в C # и .NET.

1 Ответ

4 голосов
/ 26 августа 2010

Мне кажется, я обнаружил проблему в драйвере MongoDb CSharp, профилировав его при запуске очень простого приложения, которое помещает 1000 строк в 1000 файлов GridFS.

Оказывается, что 97% времени тратится на проверку, существует ли файл с таким же именем файла в коллекции. Я добавил индекс в поле имени файла, и теперь он работает быстро!

Вопрос для меня: если драйверу необходимо сохранить уникальное имя файла и выполнить проверку, почему он не добавляет к нему уникальный индекс, если он отсутствует? В чем причина этого?

...