влияние на производительность объединения таблиц из разных баз данных - PullRequest
15 голосов
/ 16 июля 2010

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

Поэтому я должен использовать три разные базы данных, такие как "site1" (для данных первого сайта), "site2" (для данных второго сайта) и "general" (для общих таблиц). В котором будут общие операторы соединения между базами данных общей и site1 и site2. Или я должен поместить все таблицы в одну базу данных?

Какую практику лучше всего делать? Как спектакли отличаются в каждой ситуации? Я использую MySQL. Так как обстоят дела с MySQL?

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

Ответы [ 2 ]

10 голосов
/ 15 мая 2013

С точки зрения производительности различий не будет.Просто держите свои индексы на месте, и вы не заметите, используете ли вы одну БД или несколько БД.

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

3 голосов
/ 13 мая 2011

Я могу говорить из недавнего личного опыта.У меня есть несколько старых запросов MySQL в некотором PHP-коде, который отлично работал с относительно небольшой базой данных, но по мере роста запрос становился все медленнее и медленнее.приложение, которое я написал.Таблица freeradius> 1,5 миллиона строк.Я пытался объединить таблицы из базы данных моего приложения в базу данных freeradius.Я могу точно сказать, что 1,5 миллиона строк - это слишком много.Запуск некоторых запросов полностью заблокировал мое приложение.В итоге мне пришлось переписывать части моего php-приложения, чтобы сделать что-то по-другому (т.е. не объединять 2 таблицы из другой базы данных).Я также проиндексировал таблицу учета радиуса в некоторых ключевых полях и оптимизировал некоторые запросы (оператор MySQL EXPLAIN замечательно помогает в этом).Теперь все намного быстрее.

Я определенно буду колебаться, если в будущем объединю 2 таблицы из разных баз данных, если в этом нет особой необходимости.

...