2011-01-17 1 views
1

В этой области было много чего, и, несмотря на очевидные технические отличия, я хотел узнать больше о том, как разработчики обошли плохие биты и приняли рекомендацию о другом подходе.Какие интересные хотча с базами данных не sql, такими как Cassandra ...?

Краткое резюме, чтобы избежать скучных ответов, которые указывают на очевидное. - Они schemaless - быстрее, чем SQL

Я особенно заинтересован в:

  • Cassandra
+0

«Быстрее, чем SQL» Спорный .... – Thilo

+0

Возможно, я должен был бы быстрее квалифицироваться, чтобы иметь более высокую производительность ... –

+0

«Быстрее производительности» Спорный .... – Thilo

ответ

3

Интересные подводные камни:

  • Они все очень разные. Cassandra, MongoDB и CouchDB выглядят как в основном то же самое, но это не так. Ожидайте, что вам придется вникать в детали вашей реализации.
  • Вам нужно будет узнать, как уменьшить карту. (с БД по вашему выбору)
  • Вам придется реструктурировать свои данные. Первое, что вы обычно столкнетесь, это то, что настоящие «детские» данные теперь будут храниться вместе с родителем. Это создаст тонну программного смысла, но вам придется бороться с вашими старыми побуждениями, чтобы «нормализовать».
  • Вам придется немного перестроить свои данные, когда вы поймете, что ваши «основные» данные - это не те данные, которые, по вашему мнению, были.
  • Вы, вероятно, напишите еще несколько циклов for, чем вы привыкли. Ни хороший, ни плохой, это действительно побочный эффект, заключающийся в том, что некоторые вещи, которые вы делали с sum(field), не работают совсем не так. B/c теперь у вас есть все данные в текущем процессе.

Что вы найдете в MongoDB: - Вы будете тратить гораздо меньше времени на управление. DB & «таблица» создание бесплатно & автоматический. Сначала это немного странно. - Вам, вероятно, придется распространять кучу программного обеспечения для мониторинга вашего сервера. Такие вещи, как Nagios или Scout, не имеют встроенного трекера (пока). - Вы смотрите на индексы с гораздо более внимательным взглядом. Легко небрежно относиться к индексам в SQL. Бесполезные индексы в MongoDB могут быстро ухудшить производительность.

Самые большие результаты: Вам придется «думать по-другому».

В течение многих лет мы оказались в ловушке реляционного мира. Мы привыкли думать о данных в реляционных терминах. Большинство из нас, естественно, нормализуют данные по мере разработки таблиц. Мы очень хотели оптимизировать «все возможные запросы» очень рано.

NoSQL очень отличается. Вы начнете денормализовать раньше. Вы будете сосредоточены исключительно на наиболее часто встречающихся запросах. Вы быстро поймете, что большинству медленных запросов не нужны ответы в реальном времени. Это станут заданиями сокращения масштаба, которые обновляют данные.

 Смежные вопросы

  • Нет связанных вопросов^_^