Использование MongoDB и MySQL в одном приложении (соединение между базами данных?) - PullRequest
6 голосов
/ 03 сентября 2011

В основном из 25 таблиц MySQL у меня нужно для переключения 3 на MongoDB. Некоторые другие я могу поменять, но мне это не нужно. Тогда есть огромная цепочка отношений около 15 таблиц. Из них 4-5 выиграли бы от MongoDB, но около 6 я бы предпочел иметь в MySQL (разумная информация, которая должна быть стабильной).

Является ли хорошей идеей переключить часть таблиц на mongodb, когда они имеют отношения с другими в MySQL? Думаю, после переключения мне придется «присоединиться» к ним с помощью mongoDB _id, это хороший дизайн?

Или мне нужно переключить только 3 таблицы, которые мне абсолютно необходимы, и оставить остальные в MySQL?

Или мне просто переместить все в MongoDB? Насколько это безопасно? Обзоры несколько сбивают с толку - некоторые говорят, что MongoDB может потерять некоторые данные, некоторые говорят, что это так же безопасно, как и любая СУБД.

Ответы [ 2 ]

10 голосов
/ 04 сентября 2011

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

Примером может служить сайт электронной коммерции. Вы можете хранить пользователей и платежные транзакции в mySQL, но вести инвентаризацию продуктов в кластере MongoDB.

Разделив данные по mySQL и Mongo, вы потеряете способность обеспечивать ссылочную целостность, но это не обязательно проблема в зависимости от ваших данных. Вы по-прежнему можете хранить ссылки на документы Mongo из mySQL, но вы просто не сможете применить эти отношения на уровне базы данных.

Я бы начал с миграции первых 3 таблиц, а затем, если все пойдет хорошо, рассмотрите возможность перемещения остальных. Но нет ничего плохого в гибридном подходе, если вы хотите, чтобы другие данные оставались в mySQL.

3 голосов
/ 04 сентября 2011

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

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