Работа Mongodb в Windows

Я исследовал nosql опции, доступные для.NET в последнее время, и MongoDB появляется в качестве явного победителя с точки зрения доступности и поддержки, поэтому сегодня вечером я решил дать ему движение. Я загрузил версию (двоичный файл Windows x64) от mongodb сайта и выполнил его со следующими опциями:

C:\mongodb\bin>mkdir data
C:\mongodb\bin>mongod -dbpath ./data --cpu --quiet

Я затем загрузил последний драйвер mongodb-до-диеза из http://github.com/samus/mongodb-csharp и сразу выполнил эталонную тестовую программу. Услышав о том, как "удивительно быстро" MongoDB, я был скорее потрясен при плохой производительности сравнительного теста.

Starting Tests
encode (small).........................................320000 00:00:00.0156250
encode (medium)........................................80000 00:00:00.0625000
encode (large).........................................1818 00:00:02.7500000
decode (small).........................................320000 00:00:00.0156250
decode (medium)........................................160000 00:00:00.0312500
decode (large).........................................2370 00:00:02.1093750
insert (small, no index)...............................2176 00:00:02.2968750
insert (medium, no index)..............................2269 00:00:02.2031250
insert (large, no index)...............................778 00:00:06.4218750
insert (small, indexed)................................2051 00:00:02.4375000
insert (medium, indexed)...............................2133 00:00:02.3437500
insert (large, indexed)................................835 00:00:05.9843750
batch insert (small, no index).........................53333 00:00:00.0937500
batch insert (medium, no index)........................26666 00:00:00.1875000
batch insert (large, no index).........................1114 00:00:04.4843750
find_one (small, no index).............................350 00:00:14.2812500
find_one (medium, no index)............................204 00:00:24.4687500
find_one (large, no index).............................135 00:00:37.0156250
find_one (small, indexed)..............................352 00:00:14.1718750
find_one (medium, indexed).............................184 00:00:27.0937500
find_one (large, indexed)..............................128 00:00:38.9062500
find (small, no index).................................516 00:00:09.6718750
find (medium, no index)................................316 00:00:15.7812500
find (large, no index).................................216 00:00:23.0468750
find (small, indexed)..................................532 00:00:09.3906250
find (medium, indexed).................................346 00:00:14.4375000
find (large, indexed)..................................212 00:00:23.5468750
find range (small, indexed)............................440 00:00:11.3593750
find range (medium, indexed)...........................294 00:00:16.9531250
find range (large, indexed)............................199 00:00:25.0625000
Press any key to continue...

Для начала, я могу получить лучшую непакетную производительность вставки от SQL Server Express. То, что действительно ударило меня, однако, было медленной производительностью запросов find_nnnn. Почему получает данные MongoDB, настолько медленного? Что я пропускаю?

Править: Это было всем на локальной машине, никакой сетевой задержке или чем-либо. Использование ЦП MongoDB выполнило приблизительно в 75% все время, которое выполнял тест. Кроме того, я выполнил трассировку на эталонной тестовой программе и подтвердил, что 50% проведенного процессорного времени ожидали MongoDB для возврата данных, таким образом, это не проблема производительности с драйвером C#.

7
задан Chris 17 March 2010 в 12:58
поделиться

2 ответа

Я тоже запускал этот тест. В этом фрагменте кода много ошибок. Например, создание индекса не удается, но исключение проглатывается, поэтому поиск по-прежнему выполняется медленно.

Но также имейте в виду, что большой объект имеет много «объектов-деталей». Это иерархия, а не отдельная запись. В одном документе содержится 280 подробных «записей». Несправедливо сравнивать такой большой документ с одной строкой из таблицы rdbms, такой как sql server.

9
ответ дан 7 December 2019 в 03:14
поделиться

Это нетипично. Сколько оперативной памяти у вас в коробке? Что показывает верхняя часть во время проведения тестов? На моем ноутбуке я могу легко получить числа намного выше, чем это, без фактического процесса mongod, даже не вспотев.

0
ответ дан 7 December 2019 в 03:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: