powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / одна большая база данных или много маленьких
22 сообщений из 22, страница 1 из 1
одна большая база данных или много маленьких
    #36749575
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Планируется реализовать сервис для email-маркетинга. В системе существует множество аккаунтов, которые могут содержать несколько пользователей для их управления, а также списки рассылки, маркетинговые кампании, информация о рассылке и т.д.

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

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

Ниже я попытался привести некоторые плюсы и минусы каждого варианта.

Использование одной большой базы данных

Плюсы:
1. Нужно поддерживать только одну базу данных.

Минусы:
1. Хранение информации об аккаунта в одной базе данные может откывать возможность доступа одного аккаунта к данным другого (данные об аккаунте в принципе независимы друг от друга).
2. Копирование очень большой базы данных может занимать много времени.

Использование отдельной базы данных для каждого аккаунта
Плюсы:
1. Данные разным аккаунтов изолированы друг от друга.
2. Работа с маленькой базой данных аккаунта выполяется быстро.

Минусы:
1. Нужно поддерживать много БД (поддержка большого числа бд кажется настоящим кошмаром).
Спасибо.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36749665
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
однозначно одна БД
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36749667
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005В системе существует множество аккаунтов
Это, конечно же, очень познавательная оценка количества...
Начните с то того, что у каждой СУБД есть ограниечение на количество экземпляров сервера, установленных на одной "машине" и ограничение количества БД на одном экземпляре... А то вдруг у вас "множество аккаунтов" мощностью несколько тысяч....
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36749684
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafоднозначно одна БД
На самом деле, +1.

ТСМинусы:
1. Хранение информации об аккаунта в одной базе данные может откывать возможность доступа одного аккаунта к данным другого (данные об аккаунте в принципе независимы друг от друга).

Настройка прав доступа даже на уровне БД - точно меньший "кошмар", чем "Нужно поддерживать много БД (поддержка большого числа бд кажется настоящим кошмаром)."

ТС
2. Копирование очень большой базы данных может занимать много времени.
Зачем вам копировать всю БД? И оптять эти невнятные "оценки": "много времени". Какой объём БД? Какая будет СУБД? Если с СУБД непонятно - такой вопрос и задавать... Если понятно - в профильный форум по СУБД с внятными объёмами. Там всё и прояснят...
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36749688
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой,

Но ведь можно использовать множество экземпляров БД и даже физические располагать на разных серверах, ведь так?
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36749694
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой,

Количество аккаунтов может достигать со временем десятков тысяч, а может и сотен.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36749701
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой,

Планируется использвать MYSQL сервер. Для меня мысль с использованием отдельной БД для аккаунта кажется неожиданной. Цель вопроса на самом деле в том, чтобы попытаться сравнить две архитектуры.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36749863
Lemegeton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OLEG_2005Количество аккаунтов может достигать со временем десятков тысяч, а может и сотен.
Напугал кота сосиской, а ежа голым задом. Пихайте все в одну базу.
Пару лет назад держал мультидоменный почтовый сервер порядка 20 доменов, около 2000 почтовых ящиков на каждом плюс где-то по 5000 алиасов на домене плюс всякая мелочь. Что-то около 200 000 записей. Приблизительно 5-10 запросов в секунду, в пиках до 100, тогда подтормаживало, да, но это же почтовик, от него не требуется мгновенной реакции. При средних нагрузках, все запросы -- 0.00х секунд, тот же мускул, на том же серве, где и почтовик. В кэш много не попадало. Почтовому серверу много выхухоленных запросов не надо, да и остальная система выглядит не сложной.

Если возьмете нормальный хайэнд серв, поставите его отдельно от почтовых, даже тот же мускуль будет плюя в потолок вам эти сотни тысяч записей разгребать и выдавать нужные. Лучше потратьте время на масштабирование почтовой системы, при рассылке 100+ тысячам пользователей вам потребуются некислые каналы, чтобы доставить почту в разумное время.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36749963
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lemegeton,

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

На самом деле я изначально склонялся к одной базе, но теперь терзают сомнения.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36749972
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кого интересует и кто в ладах с английским, может посмотреть ссылки, что пишут люди по этому поводу:
http://stackoverflow.com/questions/128919/extreme-sharding-one-sqlite-database-per-user
http://stackoverflow.com/questions/2804452/database-per-application-vs-one-big-database-for-all-applications
http://stackoverflow.com/questions/617833/user-authentication-when-using-single-database-per-client
http://stackoverflow.com/questions/13348/what-are-the-advantages-of-using-a-single-database-for-each-client
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36750000
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В качестве основных аргументов в пользу использования архитектуры с одной БД на аккаунт приводят гибкость масштабирования (например, аккаунты с большим число данных можно хранить на отдельном физическом сервере), высокую надежность (данные одного аккаунта не влияют на данные другого), быстро можно сделать бэкап аккаунта.
Честно говоря, для меня такой подход стал в некотором смысле откровением.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36750032
prolis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при создании аналогичной по функционалу системы я использовал третий вариант:
Для 2 компаний, являющихся основными клиентами и имеющими базы консьюмеров по несколько миллионов, я использовал по одной базе на все их бренды. Преимущества в простоте организации кроссбрендовой аналитики (когда консьюмеры участвуют в программах разных брендах одного клиента), возможности актуализации адресных данных их клиентов (по свежим каналам выясняется о смене адреса одного клиента, тогда в следующий раз по другой программе другого бренда он будет участвовать с новым брендом, а не попадет в возвраты)
Для всех остальных аккаунтов, меньших размером или разовых, я использовал третью базу, полностью аналогичную первым двум. Преимущества - дешевизна сопровождения одной базы.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36751129
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд, выбор между одной бд или несколькими должен основываться только на одном:
необходимости безопасности и изолированности данных (не аккаунтов, а именно данных, всех).
Все остальное - масштабирование, поддержка и т.п. задачи вполне решаемые в обоих случаях, и в обоих случаях по масштабированию и поддержке есть свои плюсы и минусы.

Если исходя из требований есть необходимость быстро "выдернуть" данные одного из клиентов или полностью отдать кому-либо на сопровождение БД/проект одного из нескольких клиентов, лучше сразу "завязываться" на отдельную БД для каждого такого клиента.
Если таких требований по безопасности и изолированности нет, то делайте одну централизованную БД.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36751603
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман ДынникНа мой взгляд, выбор между одной бд или несколькими должен основываться только на одном:
необходимости безопасности и изолированности данных (не аккаунтов, а именно данных, всех).
Все остальное - масштабирование, поддержка и т.п. задачи вполне решаемые в обоих случаях, и в обоих случаях по масштабированию и поддержке есть свои плюсы и минусы.

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

Держать каждый аккаунт в отдельной базе нецелесообразно, но есть аккаунты с большим количеством данных, которые хотелось бы иметь возможность перенести в отдельную БД.
Таким образом видимо придется проработать вариант, когда часть аккаунтов содержится в общей базе, а часть может быть перенесена в отдельную БД. Надеюсь, что это не очень сильно усложнит систему.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36751607
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник,

А не будет ли проблемой большое время бэкапа одной большой БД?
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36751771
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Роман Дынник,

А не будет ли проблемой большое время бэкапа одной большой БД?
OLEG_2005, Вы просто засыпаете нас конкретикой
Большая БД - это сколько? В ГБ-ТБ прикидывали?
Большое время бэкапа - это сколько? Есть требование - не больше 10 мин/часа/3 часов/ суток?
Хоть с СУБД определились, и то слава богу..
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36751783
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не совсем понимаю что вы имеете в виду под аккаунтами?

Если это относится к подсистеме безопасности, возможно ее стоит выделить отдельно.
OLEG_2005А не будет ли проблемой большое время бэкапа одной большой БД?
Все зависит от выбранной СУБД.
С промышленными СУБД можно построить несколько стратегий резервирования, например:
-полный бекап
-полный + дифференцированные мелкие
-полный + дифференцированные мелкие + бекап транзакшин лога
Кроме того резервирование в нормальных СУБД - это фоновый процесс, особо не влияющий на работу с БД.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36751793
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p/s/
email-маркетинг - это нынче так СПАМ называется?!
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36752685
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник,

Как я понимаю разница между спамом и email-маркетингом огромная. Спам приходит к вам вопреки вашего желания и вы не можете от него отписаться. Здесь же для того, чтобы вам приходили сообщения вы должны дать согласие и в любой момент можете отписаться. Чувствуете разницу.
Если кто-нибудь попытается отправлять спам с помощью такой системы (придет жалоба от пользователя, провайдера), его просто заблокируют.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36752696
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой,

Может быть подскажите, сколько примерно будет выполняться резервное копирование базы данных несколько десятков гигибайт, во время работы сайта? Порядок цифр.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36752733
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник,

Под аккаунтов понимаю следующее: информация связанная с тем, кто зарегистрировался в сервисе для создания списков и рассылки своих кампаний (с каждый аккаунтом может быть связано несколько пользователей, которые получают доступ к этой информации. Иными словами эта сущность, которой предоставляются услуги для email-маркетинга и которая оплачивает эти услуги. Здесь хранятся списки рассылки, тексты кампаний, статистика по компания и т.д.
...
Рейтинг: 0 / 0
одна большая база данных или много маленьких
    #36753881
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005АнатоЛой,

Может быть подскажите, сколько примерно будет выполняться резервное копирование базы данных несколько десятков гигибайт, во время работы сайта? Порядок цифр.

Такие вопросы лучше сразу на форум MySQL - Вы же уже определиль с БД :).

Кроме того, многое зависит от железа и места, куда Вы собираетесь складывать бекапы (сеть, тип веника, лента). У меня, например на СУБД Informix ночью 32 ГБ полный архив проходит за... час :)
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / одна большая база данных или много маленьких
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]