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

Аргументы для выбора использования: RavenDB vs SQL Server - производительность, надежность и простота

Какие точки следует принимать во внимание при выборе уровня данных для веб-приложения?

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

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

4b9b3361

Ответ 1

Поскольку этот вопрос приглашает личный комментарий, вот мое мнение:

SQL Server не является базой данных для хранения чего-либо, кроме специальных отчетов. Это великолепно для этого, специальные отчеты, интеллектуальное исследование данных, обнаружение отношений в реальном времени - и его оптимальное для этих целей, потому что путь назад, когда Codd разработал правила, то, для чего он был разработан (см. The Зависимый от данных, для получения более подробной информации)

Конечно, вы можете хранить другие типы данных в реляционной базе данных. Например, вы можете сериализовать состояние своего домена в базу данных SQL Server и получить это состояние позднее, но это ужасное использование реляционной системы. На самом деле так плохо, что все слои кода (так называемые "слои данных" или DAL), много тысяч строк, необходимы для того, чтобы сделать такую ​​задачу удаленно выполнимой, проверяемой, поддерживаемой.

Великий, долголетний доверительный трюк был для розничных торговцев на базе SQL, чтобы убедить нас, что лучшего способа хранения данных иерархического/документа, кроме преобразования в реальном времени между радикально различными структурами данных, не существует. DAL и новейшая ORM были протрубными, но в конце концов, это не что иное, как кодеки, чтобы разблокировать ваши биты между различными организациями данных - разные шаблоны на диске.

Безумие!

Итак, забудьте все его-биты, аргументы ангелов-на-пинбол о атомарности, последовательности, изоляции, долговечности. Слон в комнате заключается в том, что если вы используете SQL Server, и вы не фармацевтическая компания, которая динамически добывает кубы данных для скрытых выводов в больших группах населения (вы?), То вы, вероятно, используете неправильную технологию для хранения ваших данных.

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

RavenDB? Я использовал это некоторое время (развившись через DB4O и CouchBase), и я могу сказать, что он делает то, что он говорит на жестяне. Он хранит мои вещи и возвращает их мне, когда я спрашиваю. Мне не нужно было писать какие-либо слои данных или использовать сторонний ORM. Мне не нужно было изучать структурированный язык запросов, и мне не нужно было запускать дополнительные функции для полнотекстового поиска (RavenDB основан на Lucene, так что все это "просто работает" ). Пока все хорошо.

Но на самом деле, имеет ли значение, что вы используете до тех пор, пока оно есть, для задачи под рукой, легко кодировать, быстро и эффективно? Для нормальной разработки приложений RavenDB - все это, в то время как SQL Server - нет. Это не означает, что реляционные БД плохие - не обвиняйте жертву - я полностью признаю, что для определенных специализированных разработок вам действительно может понадобиться нечто большее... экзотическое, такое реляционное хранилище данных.

Но на всякий случай, когда вы все еще цепляетесь за обломки, вам нужно спросить себя: если бы мы все использовали простые, быстрые, элегантные хранилища данных, которые точно соответствовали нашим потребностям в качестве разработчиков приложений, а затем я написал часть мнений призывая вас принять SQL Server, тогда вы, скорее всего, будете смеяться надо мной или жалеть меня. Одно можно сказать наверняка - вы не поменялись бы на SQL Server. Таким образом, мы демонстрируем, что единственная инерция - это направляющая сила, которая удерживает SQL Server в русле. Инерция и невежество. Инерция, невежество и корпоративная жадность....