Задать вопрос
alshch
@alshch
Senior Procrastination Specialist

Стоит ли разбивать одну базу данных на несколько?

Намечается большой веб-проект с кучей данных и, соответственно, таблиц. Появилась идея выделить логически несколько отдельных баз данных. Скажем, пользователей хранить в базе данных "Пользователи", статистику в базе "Статистика" и т.п. Как это повлияет на производительность? Слишком ли усложнится взаимодействие между базами? Даст ли это какое-нибудь преимущество в плане устройства архитектуры (станет ли проще обслуживать такую БД и т.п.). Или все же лучше, когда один проект - одна БД?
  • Вопрос задан
  • 1092 просмотра
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@ollisso
На то чтобы делить - должны быть серьезные причины.
Например в 1 из проектов, в котором я участвую - были выделены логи в отдельную базу. Сделано это было потому что их много и нужна была возможность основную базу бекапить быстро.
Основная база - около 30гб. Логи - 300+ Гб.

Производительность добавилась только для указанного сценария, в остальном - стало немного сложнее все :)
Так что если не видите особой пользы - то не рекомендую
Ответ написан
Сколько пользователей планируется? Сколько записей у каждого? Какие затраты на хостинг в месяц планируете? Да нет можно конечно разделить, но надо что бы все сервера стояли в одной стойке рядом тогда.
Ответ написан
Комментировать
gbg
@gbg
Любые ответы на любые вопросы
Главная проблема, которая у вас будет - проследить, что версия базы данных с пользователями соответствует всем остальным данным в системе.

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

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

Войдите, чтобы написать ответ

Похожие вопросы