Интересен такой вопрос!?
Поставил мультисайтинг, с 25 поддоменнами - на одну базу данных, с разными префиксами и с объединением нескольких таблиц, пока юзеров и переводы, далее, хочу объединить блоки, редактор, возможно форум.
Вот такой вопрос!
Если разделить базы данных, то есть на каждый поддомен, по отдельной базе - то не замедлит ли, работу друпала одновременное подключение к нескольким базам одновременно? Сколько база данных (mysql), сможет поддерживать таблиц внутри одной базы?
И ещё, поначалу были большие тормоза - в админке, думал, что что-то не так сделал. В отчёте по состоянию было "Статус HTTP запроса Неудача", поставил в сеттинге $conf['drupal_http_request_fails'] = FALSE; И всё прекрасно заработало (может кому пригодиться...). Связано -это с тем, что домен 3-го уровня - ещё некоректно работает с DNS (хотя активировал его, уже полдня назад), между тем - домен 3-го уровня активированный пару дней назад, работает без проблем! Так что, в принципе запись $conf['drupal_http_request_fails'] = FALSE; можно через пару дней убрать.
И ещё, моё личное мнение (возможно я не прав), неважно какое число таблиц в базе, важны оптимизированные таблицы внутри базы. А подключение дополнительных баз, увеличивает накладные расходы, с необходимостью подключения к двум, а то и более базам данных! Прошу поправить меня, если я не прав, ибо вопрос довольно актуален!
Комментарии
Вопрос довольно непростой.
Работу друпала как такового это не замедлит, по крайней мере если php работает в режиме cgi или модуля веб-сервера, потому как в этих случаях на каждый запрос создается отдельный процесс, а расходы на соединение с БД со стороны веб-сервера невелики.
Работу самого сервера баз данных это замедлить может, на каждое соединение будет создан тред. Вообще это все сильно зависит от того, как именно у тебя организована работа с БД.
Количество таблиц и размер базы вообще сейчас упирается не в возможности СУБД, а в размер жесткого диска и возможности файловой системы.
Если все ваши сайты используют какие-то общие данные и у вас один физический сервер баз данных, то большого смысла разделять их нет. Если предполагается что когда-нибудь на каждый сайт будет свой сервер, то разделять лучше сейчас.
И да, если хотите строить большие и сложные БД, уходите с MySQL на PostgreSQL, не пожалеете
P.S. Что касается DNS, то он тормозной, на многих серверах кэш может достаточно долго, так что все закономерно.
А я думал, что Друпал пока не очень работает с PostgreSQL (краем глаза, где-то у вас читал о проблемах, но не вникал). Обязательно изучу этот вопрос, тем более, что mysql - сейчас "под крышей" , и не известно, что завтра будет! В то время, что с PostgreSQL совсем другая история!
Благодарю за хороший ответ!
Хотя, в Друпале - нет разделения чёткого админки и фронтенда, то может на всякий случай, в сеттинге оставить строку $conf['drupal_http_request_fails'] = FALSE; на всякий случай?
Интересно! А для чего это сделано?
И ещё! Как всё-таки реально разделить базы данных? В какой параметр, занести подключение во 2-ю базу данных? Я сколько не искал, толком так и не понял!
>В какой параметр, занести подключение во 2-ю базу данных?
Увы, только модификацией исходного кода. Но столь навороченные и нагруженные системы, где в этом есть реальная необходимость, на мой взгляд, лучше делать не на друпале.
В принципе, работает с постгресом. С ним, действительно, совсем другая история, и по функциональности он очень сильно превосходит MySQL.
Значит, как я понял PostgreSQL сильнее и по функциональности и по скорости! Ладно! Этот вопрос постараюсь досконально изучить, о чём обязательно отпишусь!
Тоже когда-то ставил перед собой такой вопрос. Есть портальчик один с мультисайтингом, пока посещаемость никакая, ибо работы ещё над ним много и в открытых источниках его нет. Сейчас порядка 20 сайтов крутится на одной базе, в конечном итоге количество сайтов должно дорасти до 170. Пока нагрузки не вижу, но для перестраховки решил использоваться гуглевский поиск вместо встроенного, т.к. боюсь что переиндексирование такого количества сайтов будет чересчур прожорливым. Может прикручу другой поисковый движок, если захочется. Сервер БД mysql 5.0.27. Думаю 25 подсайтов будет крутиться нормально, хотя все зависит от количества страниц в каждом из них. Единственное с чем надо будет подумать - крон.
Я так понимаю ... . Индексация максимально возможная пройдет, в один момент времени. Количество одновременных запросов на сайт в этот момент времени, будет не больше величины количества страниц (даже если один подсайт 100 страниц, то 20*100=2000 ). Получается, поисковик, теоретически может сделать кратковременную нагрузку на сайт , 2000 запросов. В принципе, должно выдержать, тем более, если применять кеширование.
Вроде и блоки объединил (делается один, а на каждом сайте располагается по разному, таблица boxes). Полёт нормальный...!