Комментарии 15
Отличную тему выбрали! Сравнение объектно-реляционных расширений классических СУБД и NoSQL MongoDB
Очень не хватает для полноты картины конфигурационных файлов (от них очень много зависит).
Такой разлет в обновлении, скорее всего, вызван разными гарантиями транзакций (записаны ли данные физически на диск после COMMIT?).
Такой разлет в обновлении, скорее всего, вызван разными гарантиями транзакций (записаны ли данные физически на диск после COMMIT?).
Специфических конфигураций ни для одной базы не было, все использовалось «из коробки».
Насчет записи данных на диск в тестах для update — я пробовал выполнить этот тест с использованием опции write concern j:true, чтобы убедиться, что операция попала в журнал (насколько я понимаю, это рекомендуемый способ управления гарантиями транзакций в mongodb). Это, конечно, замедлило выполнение теста, но все равно обновление происходило гораздо быстрее, чем в PostgreSQL или Mysql (этих данных на графиках сейчас нет).
Насчет записи данных на диск в тестах для update — я пробовал выполнить этот тест с использованием опции write concern j:true, чтобы убедиться, что операция попала в журнал (насколько я понимаю, это рекомендуемый способ управления гарантиями транзакций в mongodb). Это, конечно, замедлило выполнение теста, но все равно обновление происходило гораздо быстрее, чем в PostgreSQL или Mysql (этих данных на графиках сейчас нет).
У вас в Mongo операции с fsync проходили?
Судя по исходникам, замеряется не скорость запросов, а скорость запуска «шела» (mongo/psql/mysql) с авторизацией, и скорость их вывода результата.
Да, это все в итоге включается во время исполнения запроса. В том числе поэтому данные тесты лишь грубая оценка производительности (хотя надо бы еще убедиться, что в других способах изменения нет подобных накладок).
Это не грубая оценка, а полный треш.
это все в итоге включается во время исполнения запросаДля интереса сейчас замерил на коллекции 100к, выполнение команды через монгошел (с запуском без авторизации) ~50мс, выполнение этой же команды из python ~0.4мс, победит тот у кого шел быстрее.
Когда программисты будут запускать внешний бинарник для запросов к БД вместо использования встроенного драйвера, тогда данный бенчмарк можно будет и рассмотреть.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Сравнить несравнимое: json в PostgreSQL vs Mysql vs Mongodb