Для нового проекта я собираюсь объединить MySQL, Sphinx и MongoDB. MySQL для реляционных данных и поиск по числовым значениям, Sphinx для свободного текстового поиска и MongoDB для геоданных. Поскольку мои (быстрые) тесты показывают, что MongoDB является самым быстрым для гео-запросов, sphinx для свободного текстового поиска и MySQL для поиска реляционных данных. Поэтому, чтобы получить лучшую производительность, мне, возможно, придется объединить их в моем проекте.Объедините MySQL, Sphinx и MongDB. Хорошая идея?
Есть, однако, три недостатка.
- Три точки отказа, т.е. Sphinx, MySQL и MongoDB может привести к сбою , который остановит мой сайт
- мне нужны данные в трех базах данных и должны держать их в курсе (все данные только изменения из них в день, так что это не худшая проблема).
- Требования к оборудованию и главным образом ОЗУ проходят через крышу , поскольку все базы данных хотят, чтобы большая часть ОЗУ была способна выполнять.
Итак, вопросы состоят в том, чтобы объединить три, оставить один (возможно, MongoDB и использовать Sphinx для геоданных), или даже пойти только с одним (MongoDB или MySQL)?
Чтобы дать представление о данных, реляционные данные приблизительны к 6 ГБ, геоданные около 4 ГБ и данные freetext около 16 ГБ.
Является ли ваш активный набор данных больше, чем RAM, который вы можете себе позволить? –
отредактировал мой вопрос, может быть, это не больше, чем я могу себе позволить, но по мере роста данных будет иметь только 1 базу данных более эффективно? – Nin