2012-05-25 3 views
1

Я создаю веб-сайт с Asp.Net MVC 3 и C#, мне довольно удобно работать с Sqlserver, но я думаю о том, чтобы идти с MongoDB, так как я предполагаю, что это будет дешевле для меня хост (бесплатно?) сайт. Мой сайт хранит тонны пользовательских записей с заголовком и содержанием вместе с некоторыми другими данными для этого зарегистрированного пользователя. Я хотел бы иметь требование сделать полный текстовый поиск в Content.I интересно, подходит ли MongoDB для этого требование.MongoDB Vs Sqlserver для приложения ASP.NET MVC3

Заранее благодарен!

ответ

2

Из моего опыта работы с MongoDB есть несколько вещей, о которых стоит подумать.

MongoDB - это база данных на основе документов, с использованием стандартного драйвера из 10gen вы можете сериализовать классы POCO напрямую или хранить данные как нетипизированный документ.

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

Это говорит о том, что полнотекстовые возможности MongoDB очень ограничены по сравнению с SQL Server, см. Ссылку ниже для получения подробных сведений о том, как выполнить базовый полнотекстовый поиск в Mongo.

http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo

MongoDB действительно вступит в свои собственные, когда извлечения данных, как это пытается сохранить БД в памяти, это позволяет получать данные от него довольно быстро.

10gen также реализует поддержку Linq непосредственно в драйвере, что упрощает запрос Mongo только к этому биту при запуске. Также вы можете использовать FluentMongo (https://github.com/craiggwilson/fluent-mongo), который находится поверх драйвера 10gen и немного более продвинут с точки зрения поддержки Linq.

Мой опыт работы с MongoDB был очень позитивным и намеревается использовать его в будущем для других проектов клиентов.

С хостингом я бы предположил, что вам нужен хотя бы консольный доступ, чтобы вы могли запустить службу БД и управлять любыми резервными копиями. В противном случае вы можете попробовать что-то вроде https://mongohq.com/home, которое, похоже, предоставляет онлайн-хостинг mongo db.

Я надеюсь, что некоторые это полезно

+0

Поскольку полнотекстовый поиск очень ограничен в MongoDB, значит, мой поиск в поле «Содержимое» не будет таким эффективным и быстрым? – user636525

+0

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

3

Это зависит от структуры данных. MongoDB - это документально ориентированная БД. Это быстрее, чем MS Sql Server для «простой структуры данных». Но у него все еще есть большие проблемы с функциональностью «join».

Если вы хотите опробовать хорошую базу данных No-SQL для .NET-проекта, то RavenDB также может быть хорошим выбором - http://ravendb.net/ Это так же быстро, как и Mongo, и у него не так много проблем с базами данных документов (например, он имеет довольно хороший способ работы с объединениями). Но! это не бесплатно :)

Если вам необходимо реализовать полнотекстовый поиск Solr http://lucene.apache.org/solr/ - очень интересный и полезный инструмент для этого. Мы использовали его в нескольких проектах с библиотекой Solr.NET. http://code.google.com/p/solrnet/. Хорошее начало учебника находится здесь. http://crazorsharp.blogspot.co.nz/2010/01/full-text-search-using-solr-lucene-and.html

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