Совпадают ли условия в выборках? Сколько тестовых прогонов вы делаете? Одинаковые ли объёмы памяти выделены монге и пг, относительно размера данных?
1) Вы сравниваете на «холодную», после перезапуска и монги и pg? если вы про то что бд может закэшировать запрос и из за этого дать не правильное время то не волнуйтесь, я учел этот фактор, он запрашивает без кэша напрямую с бд 2) Совпадают ли условия в выборках? Сколько тестовых прогонов вы делаете? на одинаковых условиях проверял на разные даты и вам показал один кейс, можете заметить что число документов и строк одинаковые. как итог монго всегда уступает 3) Одинаковые ли объёмы памяти выделены монге и пг, относительно размера данных? я два сервисе поднял с докером и с external volume, думаю с этим нет проблем 4) На каких хостах и платформе вы делателе тесты? С какой версией? Отличается ли аппаратная и программная конфигурации тестовых машин? все что тестилось было на одном серваке при равных условиях, на одной машине в одном контейнере докера Надеюсь я правильно понял и ответил)
По моей теории что индексация в PostgreSQL идентично с разделением на коллекции в монго (возможно даже быстрее)
1) у бд есть свой кеш, который в зависимости от базы данных может вести себя очень по разному. корректный способ сравнения: перезапустить базы и сделать существенное количество запросов, например 100 и через паузу ещё 100, записывая время ответа. В дальнейшем необходимо посчитать медианное время выполнение и исключить «внешний шум» расчитав stdev 2) требуется убедится что ваш драйвер/odm не добавляет никаких дополнительных условий в запрос. 3) если обе базы данных были запущены в момент тестирования, это неккоректный метод сравнения. базы данных по разному используют память и вы можете наблюдать конкуренцию за выделение памяти и задержки при сбросе файлового кеша на диск 4) внешие облачные хранилища, особенно если у них нет жестких гарантий iops генерируют шума больше чем реальных данных
Обсуждают сегодня