Remmi
@Remmi

Стоит ли в MySQL разделять таблицы по разным БД?

Ситуация:
1) есть база данных с несколькими рабочими таблицами
2) есть PHP-скрипт, который постоянно висит в памяти и кладёт данные в одну из рабочих таблиц
3) со временем эта таблица стала слишком большой, и её разделили на несколько новых небольших таблиц
4) количество этих новых таблиц постоянно растёт, через 3 месяца их будет 100 и количество будет продолжать расти

Из-за появления новых таблиц стало сложно визуально ориентироваться в списке таблиц (делать выборки и искать нужные таблицы). Думаем над тем, чтобы вынести их в отдельную базу - если их вынесем, в PHP-скрипте придётся постоянно поддерживать 2 соединения с базами.

Вопрос:
1) стоит ли делить таблицы по разным БД?
2) насколько критичным может быть наличие двух одновременных соединений с базами через скрипт, постоянно висящий в памяти?
3) если в разделении на базы нет ничего страшного, на сколько баз в перспективе можно будет делить данные (если новых таблиц станет over 9000)?
4) что почитать по подобной организации данных? :)

Заранее спасибо за ответы.
  • Вопрос задан
  • 2712 просмотров
Решения вопроса 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
В MySQL (к другим СУБД это не относится) в запросе возможно указать базу данных. Более того, в одном запросе может быть обращение к таблицам разных БД. Разумеется, если все они работают на одном сервере.

Т.е. безо всяких дополнительных соединений можно сделать:

INSERT INTO base1.table1 (field2) SELECT base2.table2.field2 FROM base2.table2;

Таким образом, никаких проблем с разделением таблиц по нескольким базам нет. И несколько соединений тоже не требуется.

Если же базы будут работать на разных серверах, то да - понадобится по одному соединению на сервер. Что тоже проблем не вызовет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
Партицируйте. Даже mysql уже давно умеет партицирование.
Ответ написан
Ваш ответ на вопрос

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

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