MongoDB
MongoDB — документоориентированная система управления базами данных, написанная на языке C++. Относится к классу NoSQL и является Schema-less.
В MongoDB есть поддержка индексов, ускоряющих поиск. Система масштабируется горизонтально через механизм шардинга и может работать в распределённом режиме.Также поддерживается репликация (хранение нескольких копий данных).
Мы ранее активно работали с MongoDB, но сейчас считаем, что это не лучшее решение:
Для односерверных инсталляций рациональнее использовать PostgreSQL, а документоориетированный функционал реализовывать на JSONB-полях c GIN-индексами. А для кластерных систем в наших кейсах лучше подходит Cassandra или Scylla.
Scylla — распределённая отказоустойчивая колоночная СУБД с открытым исходным кодом.
ScyllaDB была создана на основе архитектуры Apache Cassandra с целью достижения более высокой производительности: повышения пропускной способности и снижения задержек. Как и Cassandra, Scylla поддерживает язык запросов CQL и формат файлов SSTable.
PostgreSQL — свободная объектно-реляционная система управления базами данных, основанная на языке SQL.
СУБД отличается высокой надёжностью и хорошей производительностью. PostgreSQL поддерживает транзакции (ACID), репликация реализована встроенными механизмами. При этом система расширяемая — можно создавать свои типы данных и индексов, а также расширять поведение при помощи языков программирования.