Выбор базы данных для производительности и масштабируемости для API C # - PullRequest
0 голосов
/ 13 декабря 2018

Я работал над проектом для приложения, похожего на знакомство, типа трут / шмеля.Я обсуждал, какую базу данных использовать Cassandra или MongoDB.Пока у меня есть опыт работы только с MS SQL, mysql и Unidata ... Я изучал Cassandra и MongoDB из-за масштабируемости, но я слышал, что у Tinder были проблемы с их MongoDB, поэтому им пришлось обратиться за помощью.Даже если это не один из тех 2, что бы вы еще предложили?Изучение БД не будет проблемой для меня, но я ищу производительность и масштабируемость.Основным языком программирования будет C # (если это поможет), и желательно, чтобы я создавал его в облаке (Azure Cosmos DB, AWS DynamoDB или аналогичный).Я думаю о NoSQL DB из-за масштабируемости, но я не буду против выбора СУБД, если есть веская причина.

Предложения, комментарии, мысли?

1 Ответ

0 голосов
/ 13 декабря 2018

Кассандра имеет некоторые преимущества перед mongodb.

  • В Кассандре нет главного-раба.Любой узел может получить любой запрос.Если мастер остановится на mongodb, вы столкнетесь с небольшим временем простоя.
  • Кассандру легко масштабировать, добавление узла не является проблемой.
  • Запись выполняется очень быстро.
  • Быстрый запрос на чтение с первичным ключом.

Также

  • В Кассандре нет агрегации
  • Плохая производительность при очень высоком обновлении /удалить (увеличение количества надгробий приводит к плохому снижению производительности: http://thelastpickle.com/blog/2016/07/27/about-deletes-and-tombstones.html)
  • Неэффективно для приложений полнотекстового поиска
  • Нет транзакций
  • Нет объединений
  • Вторичные индексы не являютсяравен индексам rdbs и не должен использоваться очень часто

Таким образом, вы не можете использовать cassandra для всех случаев использования. Если ваша модель данных не подходит для cassandra, просто рассмотрите другой db, который соответствует вашим требованиям.

Также взгляните на: https://blog.pythian.com/cassandra-use-cases/

...