Подтвердить что ты не робот

Какими должны быть соображения для выбора SQL/NoSQL?

Целевое приложение - это веб-сайт среднего размера, созданный для поддержки от нескольких сотен до нескольких тысяч пользователей в час, с возможностью масштабирования выше этого. Модель данных довольно проста, и потенциал кеширования довольно высок (отношение чтения к действию составляет ~ 10: 1).

Какими должны быть соображения при выборе между реляционным хранилищем данных на основе SQL и параметром NoSQL (например, HBase и Cassandra)?

4b9b3361

Ответ 1

Для меня у вас нет особых проблем для решения. Если вам нужна ACIDity, используйте базу данных; если вы этого не сделаете, то это не имеет значения. В конце просто создайте приложение. И позвольте мне процитировать NoSQL: If Only It Was That Easy:

Реальная вещь, чтобы указать на то, что если вы отвлекаетесь от создания чего-то супер-потрясающего, потому что вы не можете выбрать базу данных, вы делаете это неправильно. Если вы знаете mysql, просто используйте его. Оптимизируйте, когда вам действительно нужно. Используйте его как магазин k/v, используйте его как rdbms, но, ради бога, создайте свое приложение-убийца! Ничто из этого не имеет значения для большинства приложений. Facebook все еще использует MySQL, много. Википедия использует MySQL, много. FriendFeed использует MySQL, много. NoSQL - отличный инструмент, но его, конечно же, не будет вашим конкурентным преимуществом, его не будет делать ваше приложение жарким, и, прежде всего, ваши пользователи не будут наплевать на все это.

Ответ 2

Digg имеют интересные статьи об этом вопрос. По сути, вы перекладываете бремя обработки на записи, а не на чтение, что может быть желательно в высокомасштабируемых приложениях. Кассандра специально также доступна.

Упрощенно, Кассандра - это распределенная база данных с помощью BigTable модель данных, работающая на динамо инфраструктуры. Он ориентирован на столбцы и позволяет хранить относительно структурированные данные. Оно имеет полностью децентрализованная модель; каждый nodeидентична, и нет единого точка отказа. Это также чрезвычайно отказоустойчивой; данные дублируются несколько узлов и данных центры. Кассандра также очень эластичный; скорость чтения и записи линейно возрастают, поскольку новые машины добавлен.

Ответ 4

Когда вы говорите, модуль данных довольно прост, это может говорить о опции NoSQL.

Когда у вас есть много атрибутов для выбора, тяжелой транзакции или сложных структур таблиц, которые будут говорить для традиционных таблиц SQL.

Я бы рекомендовал выяснить, насколько сложно было бы реализовать модель данных с одной или двумя базами данных NoSQL. Когда это довольно сложно, вы можете также составить классическую схему таблицы, с которой можно сравнить.

Когда у вас возникли трудности с NoSQL, это может говорить для опции SQL. Но также может быть, что большая загрузка лучше обрабатывается с помощью NoSQL, но также может быть, что хорошая база данных SQL достаточно масштабируется...

Буферизация также может быть выполнена с помощью простого прокси-сервера...

В случае трудностей можно также рассмотреть сочетание NoSQL и SQL.