2010-06-17 3 views
3

Сколько баз данных необходимо для социального сайта? У меня есть моя техническая команда, работающая над разработкой социального сайта, но все их таблицы находятся в одной базе данных. Я хотел создать отдельные таблицы для пользовательских данных, временных таблиц и т. Д., И, возможно, у вас есть одна отдельная база данных только для критических данных и т. Д., Но я не технический человек и теперь уверен, как это работает? Сайт будет локальным веб-сайтом.Таблицы базы данных - сколько баз данных?

+0

Я не специалист по db, поэтому я не буду оставлять ответ, но ... Не важно, ставите ли вы 100 таблиц в одной базе данных по сравнению с 1 таблицей в 100 базах данных. Единственная хорошая причина, по которой я могу думать о наличии нескольких баз данных, - это разделение данных, которые должны быть более безопасными (списки паролей), из данных, которые этого не делают. Ex. если кто-то управляет успешной инъекцией sql из вашего медиа-загрузчика и обрезает все таблицы, они не будут касаться списка записей паролей. –

+6

Если вы по собственному признанию являетесь «не технологическим человеком и теперь [sic] уверены, как это работает», то какая разница в том, сколько баз данных используется? – Ken

+0

Несколько баз данных в одном экземпляре являются спорными, если взломщик получает учетные данные с достаточным уровнем воздействия. Защитите привилегии для учетных записей, используемых для доступа к базе данных. –

ответ

0

В чем причина этого в разных базах данных?

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

2
+0

Осторожно: Отметьте ответы так же, как сообщество wiki. Те, у кого нет юмора, могут снизить вас, что ваш представитель не влияет на ответы сообщества wiki (вверх или вниз). В противном случае используйте комментарий. –

2

Простой ответ, как всегда, как можно.

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

0

Если вы разрабатываете действительно БОЛЬШОЙ веб-сайт, одна из баз данных - это способ продолжить (кстати, рассмотрели ли вы возможные проблемы, которые могут возникнуть при работе с различными базами данных?).

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

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

0

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

Поскольку это будет новый стартап, нет денег, чтобы инвестировать в сильную защиту или получить базу данных, разработанную безупречно. Кроме того, в настоящее время не существует политики резервного копирования, поэтому: 1) Я хочу отделить важные данные, такие как пароль пользователя/базовый профиль, а затем выделить пользовательские носители (фотографии, которые они загружают в свой профиль), а затем содержимое пользователя. Затем отделите содержимое системы. Текущая конструкция состоит в том, чтобы иметь слои таблиц: мастер-таблицы для всей системы и таблиц модулей для каждого отдельного модуля. 2) Производительность. Существует много модулей, которые разрабатываются, и это социальный сайт с интенсивным использованием данных, в котором много отчетов/аналитических систем, встроенных так много чтения/записи. Может быть, лучше распределить нагрузку по базе данных по назначению?

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

Oh & Планируется добавить режим постановки/производства и так отдельно или такую ​​же базу данных?

+0

Томас, вместо того, чтобы давать «ответ», вы должны отредактировать свой собственный вопрос, добавив дополнительную информацию. –

+1

Если вы не можете позволить себе «сильную защиту» или резервные копии, несколько баз данных не помогут вам. Когда социальный сайт теряет все данные пользователя, кроме своего логина и пароля, они не возвращаются. И привыкните к тому, чтобы ошибиться в первый раз, потому что самые умные мысли в мире не могут предсказать производительность сложных систем. Хорошей новостью является то, что, если вы не получаете нового пользователя каждые 15 секунд, вы не будете поражать пользователей 1M через 6 месяцев - у вас есть больше времени, чем это. :-) – Ken

1

Если вы начинаете использовать отдельные базы данных, вы также можете запустить стратегию резервного копирования/восстановления.Если у вас есть 5 баз данных и резервное копирование всех пяти, что происходит, когда вам нужно восстановить один из них, вам нужно восстановить все пять?

Я бы выбрал наименьшее количество баз данных.

1

Причина, по которой вы хотите иметь несколько баз данных, предназначена для масштабирования нескольких компьютеров. В контексте «социальной заявки», где большой объем/высокая доступность вызывает озабоченность. Если вы ожидаете, что вам нужно масштабировать до нескольких компьютеров для обработки больших объемов, тогда прорыв таблиц должен быть тем, что логически необходимо поддерживать вместе.

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

Существуют логические и служебные причины для хранения таблиц в отдельных физических или логических базах данных.

0

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

Смежные вопросы