Тема: Масштабируемость портала с поддоменами

Доброго времени суток.

Пару слов о проекте:
Сейчас проект находится на стадии проектирования.
Будет портал, где каждый его сервис будет являться поддоменом ( например, auto.domen.ru, foto.domen.ru, forum.domen.ru), причем это физически будут разные сайты. Такая тактика выбрана для того, чтобы можно было легко вынести какой-либо сервис на отдельный сервер. Оформление будет браться с основного адреса (например, www.domen.ru).

С веб серверами все понятно, а вот как быть с базой?
В идеале нужно распределение если это форум, то в одной базе нужно хранить все что связанно с форумом, а из базы которая на основном домене нужно брать юзеров.
Получиться ли такое организовать? и если да, то насколько это сложно будет реализовать на symfony?

2

Re: Масштабируемость портала с поддоменами

Получится. Ничего не мешает использовать хоть 50 баз одновременно. просто будет несколько коннектов (в общем случае как минимум два - один к "системной" базе, где настройки и пользователи, другой - к тематической, к которой относится запрашиваемая страница). И конечно же их придется указывать при выполнении запросов.

Честно говоря, не совсем понимаю практический смысл разделения на разные БД. Базе ведь в принципе все равно, сколько в ней таблиц, 20 или 500. И от того, будет у вас 10 баз с 500 таблицами в сумме или будет одна с этими же 500 таблицами - ничего особо не изменится. Эти вопросы успешно решаются средствами распределения нагрузки между серверами в самой БД. Кроме того, вы получите возможность использовать зависимости (скажем при удалении пользователя - автоматически удалить все связанные с ним объекты, в том числе тематические, непосредственно средствами БД).

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

3

Re: Масштабируемость портала с поддоменами

Вопрос больше не к Симфони, а как написали выше архитектурный. С Симфони проблем не будет. Все проблемы описаны выше.

Можно сделать и несколько БД. Но в любом случае нужна одна центральная БД (профили пользователей). И тут минимум 2 коннекта к БД, или другая схема, где один коннект и сложная система синхронизации баз данных.
Вам нужны такие проблемы? Посмотрите в сторону масштабирования БД.