Легче ли масштабировать базу данных с помощью Rails или Django? - PullRequest
1 голос
/ 12 ноября 2010

При создании продукта Saas база данных является самой большой проблемой, когда дело доходит до масштабирования.

Судя по моим исследованиям, Django предлагает более надежный встроенный способ вертикального разбиения базы данных.

В Rails есть несколько драгоценных камней, которые вы можете использовать, но это не то, что поставляется с платформой Rails, и вы действительно зависите от разработчика, который выпустил его (и, возможно, не поддерживает его в актуальном состоянии и т. 1005 *

С точки зрения вертикального разделения, верно ли мое наблюдение, что Django более устойчив в этой области?

Multi-dbs с использованием django: http://docs.djangoproject.com/en/dev/topics/db/multi-db/

1 Ответ

3 голосов
/ 12 ноября 2010

Вы можете создать несколько баз данных в Rails, каждая модель может иметь отдельное соединение, если вы хотите, это является частью основных функций, но это не будет очень эффективным способом масштабирования. Обычно гораздо лучше сосредоточить усилия на настройке стека базы данных путем настройки параметров, кластеризации, репликации или применения более строгого кэширования внутри самого приложения.

Разделение таблиц между базами данных действительно не принесет вам большой масштабируемости. Более современный подход - это разделение, где каждая таблица разбита на отдельные экземпляры, хотя для перехода по этому пути требуется как значительная подготовка, так и очень глубокое понимание архитектуры базы данных. Поскольку вы можете контролировать размер каждого осколка, вы можете масштабировать без ограничений в этом отношении.

Имейте в виду, что Rails поставляется с ActiveRecord в качестве стандартного сопоставителя объектных отношений (ORM), но есть два других готовых к работе пакета, которые предлагают различные функции: DataMapper и Сиквел

По моему опыту разработки крупномасштабных приложений, единственный раз, когда вы обнаружите, что база данных является узким местом, это когда вы используете плохо настроенную конфигурацию, оборудование с недостаточным питанием или структура вашей таблицы. t достаточно проиндексирован или не нормализован. Это является общим для всех приложений, поддерживаемых базой данных, и не является уникальным для Rails или Django, поэтому выбор платформы здесь не имеет значения.

Большая часть прироста производительности в приложении на Rails обусловлена ​​правильной денормализацией данных, использованием Rails.cache при поддержке memcache и переключением с нагрузок на основе моделей на прямые запросы, если это необходимо по соображениям производительности. Rails может очень хорошо масштабироваться на одном экземпляре базы данных, без каких-либо особенно экзотических с точки зрения методов, только тщательного применения основных принципов оптимизации.

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