Где использовать MongoDB и где MySQL? - PullRequest
6 голосов
/ 28 апреля 2011

Я думаю об использовании одной из двух баз данных - MySQL и MongoDB. Я планирую хранить текстовые и числовые данные, и я буду строить свое приложение в RoR.

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

Ответы [ 5 ]

12 голосов
/ 29 апреля 2011

Позвольте мне поставить этот вопрос в более общих чертах и ​​в некоторой исторической перспективе.

В 60-х годах они спрашивали, использовать ли иерархическую или сетевую базу данных

В 70-х годах дебаты были реляционнымипротив сети

В 80-х годах реляционные превратились в базы данных SQL, поэтому вопрос был преобразован в SQL против сети

В 90-х годах это был SQL против объектных баз данных

В 00-х это былоSQL против баз данных XML

Сегодня у нас есть SQL против NoSQL

Вы видите образец здесь?Будете ли вы ставить деньги на конкурента SQL, особенно если это не что иное, как прославленная хеш-таблица?

4 голосов
/ 28 апреля 2011

Я также использовал MySQL и MongoDB с Mongoid в своих проектах, и я могу сказать, что если вы хотите сохранить в своей базе данных двоичные данные, такие как изображения, mp3-файлы и другие файлы, попробуйте Mongo, по другим причинам вы можете использовать базы данных SQL , MongoDB не имеет структуры - вы обрабатываете хеш, поэтому вы можете динамически добавлять и удалять ключи / столбцы.
В вашем случае я бы использовал MySQL.

2 голосов
/ 28 апреля 2011

По моему мнению, вы должны основывать свое решение на цели вашего заявления. Хотите ли вы искать через ваши текстовые данные, как вы будете определять ключи. В MySQL мало смысла, если вам нужно запрашивать каждую запись и сканировать ее. Даже если в MySQL есть функция для сканирования текста (есть ли она?), MongoDB, вероятно, сделает эту работу более эффективно. С другой стороны, если вы не собираетесь использовать сильные стороны MongoDB, вы можете также пойти на MySQL.

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

1 голос
/ 29 апреля 2011

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

1 голос
/ 28 апреля 2011

Я думаю, что если вам нужна жесткая структура, вы должны использовать MySQL, потому что это не является ее природой, но если вам нужно что-то более динамичное, без какой-либо структуры (без схемы), вам следует использовать MongoDB, я никогда использовать MongoDB, но я знаю, что он больше ориентирован на объект / документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...