Лучший подход к связыванию баз данных или таблиц? - PullRequest
0 голосов
/ 08 февраля 2010

Что у меня есть:

  • База данных MySQL, работающая в Ubuntu, которая поддерживает большую таблицу статей (аналог WordPress).
  • Необходимо связать данную статью с другим наборомданных.Этот набор данных будет довольно большим.
  • Там могут быть различные наборы данных, которые будут связаны.

Запрос:

  • Это лучше?содержать эти различные большие наборы данных в одной и той же базе данных статей, которая будет иметь большой набор трафика?

или

  • Лучше ли создаватьразные базы данных (на одном сервере), которые связаны первичным ключом с основной базой данных со статьями?

Ответы [ 4 ]

2 голосов
/ 08 февраля 2010

Сначала поместите их в одну и ту же БД, пока не обнаружите проблему с производительностью. Гораздо проще, чем преждевременная оптимизация.

Современные СУБД очень хороши в оптимизации доступа к данным.

0 голосов
/ 08 февраля 2010

Когда вы говорите «одна и та же база данных» и «разные базы данных, связанные», вы не имеете в виду «одна и та же таблица» против «разных таблиц»?

если это вопрос, я бы сказал:

  • один стол для статей
  • если все эти «другие наборы данных» имеют одинаковую структуру, поместите их все в одну таблицу. если нет - одна таблица для каждого типа данных.
  • все в одной базе данных

если вы становитесь достаточно большими, чтобы сделать размер базы данных проблемой производительности (после множества миллионов записей и множества запросов в секунду), рассмотрите разбиение таблицы или, возможно, замените самую большую таблицу на хранилище ключей / значений ( couchDB , mongoDB , redis , Tokyo Cabinet , [etc] [6]), которое может быть немного быстрее, чем MySQL, но намного проще для производительности.

[6]: хранилище ключей

0 голосов
/ 08 февраля 2010

Различные базы данных на одном сервере дают вам все проблемы распределенной архитектуры без каких-либо преимуществ масштабирования Одна база данных на сервер - путь.

0 голосов
/ 08 февраля 2010

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

Если у вас серьезный трафик, рекомендуется использовать постоянное соединение для этого запроса.

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

...