Сильные и слабые стороны баз данных NoSQL (а также баз данных SQL) - это высоко в зависимости от вашего прецедента. Для очень больших проектов производительность короля; но для совершенно новых проектов или проектов, где время и деньги ограничены, простота и время выхода на рынок, вероятно, самые важные. Для того, чтобы учиться (расширять свою перспективу, становясь лучшим, более ценным программистом), возможно, самое важное - это простые, прочные фундаментальные концепции.
Какой проект вы имеете в виду?
Некоторые сильные и слабые стороны, с верхней части моей головы:
- Redis
- Очень простой ключ-значение "глобальной переменной сервера"
- Очень просто (некоторые сказали бы «, не 0%)
- Легко быстрый в этом списке
- Сделки
набор
- данных должен помещаться в памяти
- незрелой кластеризации, с неясным будущим (я уверен, что это будет здорово, но это еще не решен.)
- Кассандру
- Вероятно наиболее сообщества импульс BigTable подобных баз данных
- Вероятно, самый простой из этого списка, чтобы управлять в больших/растущих кластеров
- Поддержка карты/уменьшить, хорошо для аналитики, хранилищ данных
- МУЛЬТИ-центров обработки данных репликации
- перестраиваемый консистенция/наличие
- Нет единой точки отказа
- Вы должны знать, какие запросы вы будете работать в начале проекта, чтобы подготовить форму данных и индексов
- CouchDB
- рука вниз лучшие синхронизации (репликация) поддержка, поддержка ведущий/ведомый, ведущий/ведущая, и более экзотические архитектуры
- Протокол HTTP, браузеры/приложения могут взаимодействовать непосредственно с БД частично или полностью. (Синхронизация также осуществляется через HTTP)
- После короткого кривого обучения, довольно сложная система запросов с помощью JavaScript, и карты/уменьшить
- службы в кластере (без SPOF, перестраиваемый консистенция/доступности) в настоящее время значительная вилка (BigCouch). Вероятно, он объединится в Couch, но нет дорожной карты.
- Аналогично, кластеризация и многоцентровое пространство теоретически возможны («экзотическая» вещь, о которой я упоминал), однако в это время вы должны написать все эти инструменты.
- Добавлять только формат файла (как базы данных, так и индексы) быстро и быстро уничтожает диск, и вы должны вручную запустить уплотнение (вакуумирование), которое делает полную копию всех записей в базе данных. То же самое необходимо для каждого индексного файла. Опять же, вы должны быть вашим собственным помощником.
+1 «Простота и время выхода на рынок, вероятно, самые важные». Сначала оптимизируйте свой бизнес, затем технологии. Недостатком Redis является то, что он действительно хорош только для наборов данных, которые вписываются в память; его возможности кластеризации и дисковые решения ограничены. Другие плюсы Cassandra - это репликация нескольких репликаторов, настраиваемая согласованность/доступность для каждой операции и отсутствие единой точки отказа (каждый узел в кластере играет ту же роль, что и мастера). Недостатком Cassandra является то, что вы должны думать о своих запросах, прежде чем организовывать свои данные, и это может приложить определенные усилия. –
Кстати, по моему опыту, «проекты, в которых ограниченное время и деньги» охватывают ** огромное количество проектов ** в течение ** огромного большинства ** их жизненных циклов. – JasonSmith
BigCouch - отличное программное обеспечение. Он возглавлял основные члены команды разработчиков CouchDB. Он будет поддерживаться и развиваться дальше. Хотя я не знаю дорожной карты, я ожидаю, что BigCouch будет слит обратно в CouchDB в некотором роде. И если вы считаете меня безнадежным фанатом, считайте, что BigCouch сделан конкурентом моей компании! – JasonSmith