Вы можете создать несколько баз данных в Rails, каждая модель может иметь отдельное соединение, если вы хотите, это является частью основных функций, но это не будет очень эффективным способом масштабирования. Обычно гораздо лучше сосредоточить усилия на настройке стека базы данных путем настройки параметров, кластеризации, репликации или применения более строгого кэширования внутри самого приложения.
Разделение таблиц между базами данных действительно не принесет вам большой масштабируемости. Более современный подход - это разделение, где каждая таблица разбита на отдельные экземпляры, хотя для перехода по этому пути требуется как значительная подготовка, так и очень глубокое понимание архитектуры базы данных. Поскольку вы можете контролировать размер каждого осколка, вы можете масштабировать без ограничений в этом отношении.
Имейте в виду, что Rails поставляется с ActiveRecord в качестве стандартного сопоставителя объектных отношений (ORM), но есть два других готовых к работе пакета, которые предлагают различные функции: DataMapper и Сиквел
По моему опыту разработки крупномасштабных приложений, единственный раз, когда вы обнаружите, что база данных является узким местом, это когда вы используете плохо настроенную конфигурацию, оборудование с недостаточным питанием или структура вашей таблицы. t достаточно проиндексирован или не нормализован. Это является общим для всех приложений, поддерживаемых базой данных, и не является уникальным для Rails или Django, поэтому выбор платформы здесь не имеет значения.
Большая часть прироста производительности в приложении на Rails обусловлена правильной денормализацией данных, использованием Rails.cache
при поддержке memcache и переключением с нагрузок на основе моделей на прямые запросы, если это необходимо по соображениям производительности. Rails может очень хорошо масштабироваться на одном экземпляре базы данных, без каких-либо особенно экзотических с точки зрения методов, только тщательного применения основных принципов оптимизации.