2011-12-17 2 views
1

В настоящее время я разрабатываю приложение типа «микроблог». Я использую Rails3 и MySQL. Я начинаю задаваться вопросом, действительно ли это хорошая идея. Таблица состояния через 2-3 года может содержать много миллионов строк.Rails microblog using (No) SQL

Может ли MySQL обрабатывать эту сумму или мне нужно преобразовать в решение NoSQL, такое как Mongo? Я нахожусь в начале разработки, поэтому не будет проблемой конвертировать приложение в это состояние.

Как вы думаете? Это не вопрос о SQL и NoSQL. Это о том, что лучше всего подходит для такого приложения?

/Tobias

ответ

2

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

Однако, как правило (размахивая руками), этот тип приложения можно наилучшим образом смоделировать с помощью решения NoSQL.

Вы будете иметь несколько основных моделей: пользователей, блоги, записи, комментарии Вложения

С раствором, как MongoDB вы можете моделировать на сообщения как объекты, которые содержат некоторые (или все) информации, связанной комментариям и вложениям, нравится, сохраняет (делает небольшую денормализацию) как внедренные объекты вместо отдельных коллекций/таблиц, которые в противном случае должны были бы быть объединены вместе для получения той же информации.

Это здорово, потому что, когда вы извлекаете почтовое объект из хранилища данных, у вас есть все эти богатые метаданные вместе с ним (не неся дополнительных затрат на присоединение, что данные в)

Однако, если ваш блог из типа, где эта информация редко используется или отображается, этот тип дизайна не принесет вам многого с точки зрения производительности.

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