Несколько баз данных, или таблицы с большим содержанием - PullRequest
0 голосов
/ 27 марта 2012

Я собирался опубликовать это на администраторах баз данных, но, поскольку это немного связано с PHP, я чувствовал, что было бы лучше размещать здесь.

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

В настоящее время для каждого сценария PHP, который я запускаю, я инициирую 8 подключений к моему MySQL серверу, по одному для каждой базы данных. Я знаю, что это плохо !!!

Мой коллега предложил полный редизайн, который использует только одну базу данных и несколько таблиц, но с гораздо большим количеством полей и большим количеством контента. Мой вопрос, довольно просто, он прав? Должен ли я попытаться объединить все свои базы данных в одну и иметь как можно меньше таблиц, даже если данные будут довольно большими? Аргумент, который он выдвигает, заключается в том, что базы данных предназначены для хранения больших объемов данных, будь то 10 миллионов или 10 миллиардов записей. Это их работа, поэтому я должен просто довериться им и спроектировать базу данных так, чтобы мне было проще всего.

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

  1. Большие веб-сайты - несколько баз данных или несколько таблиц?
  2. Несколько таблиц базы данных или объединены в одну

Заранее спасибо

1 Ответ

3 голосов
/ 27 марта 2012

Мой вопрос, довольно просто, он прав?

Да, вам нужно как можно меньше попадать в базу данных, чтобы не увеличивать ее. Если у вас есть только один пользователь, вы открываете 8 соединений. Если у вас есть два, вам вдруг понадобится 16! Три - 24 !! Как вы пришли к выводу, что это распределит нагрузку? На мой взгляд, на самом деле все наоборот, не говоря уже о проблемах с реляционными данными и дизайном самого приложения.

Итак, некоторые основные правила:

база данных - одно приложение -> одна база данных (если это действительно не нужно, и вам нужно знать, ПОЧЕМУ и КАК это сделать)

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

Если у вас есть запрос, для которого нужно выбрать данные из нескольких таблиц, вы бы тоже не написали несколько запросов, верно? Вы бы написали один запрос с «соединениями», чтобы выполнить только одно попадание в базу данных, и в принципе это тот же принцип, что и наличие нескольких баз данных ...

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